显然,关注点分离是我们代码中的一个理想特征,大多数人采取的第一个明显步骤是将数据访问与表示分开.在我的情况下,LINQ To SQL正在数据访问对象中用于数据访问.
我的问题是,实体对象的使用应该停在哪里?为了澄清,我可以将实体对象传递到域层,但我觉得实体对象不仅仅是一个数据对象 - 就像将DAL的一部分传递到下一层一样.
假设我有一个UserDAL类,它应该在调用方法GetByID()时将实体User对象暴露给域,还是应该纯粹用于存储数据的纯数据对象?(在这种情况下似乎浪费重复)
你们在同样的情况下做了什么?有替代方法吗?
希望这不是太模糊.
非常感谢,
马丁.
我从我的DAL(使用LINQ2SQL)返回POCO的IQueryable,因此没有Linq实体对象离开DAL.这些POCO将返回到服务和UI层,并且还用于将数据传递回DAL以进行处理.Linq处理得非常好:
IQueryableproducts = from p in linqDataContext.Products select new MyObjects.Product //POCO { ProductID = p.ProductID }; return products;