当前位置:  开发笔记 > 数据库 > 正文

LINQ To SQL实体对象作为域对象

如何解决《LINQToSQL实体对象作为域对象》经验,为你挑选了1个好方法。

显然,关注点分离是我们代码中的一个理想特征,大多数人采取的第一个明显步骤是将数据访问与表示分开.在我的情况下,LINQ To SQL正在数据访问对象中用于数据访问.

我的问题是,实体对象的使用应该停在哪里?为了澄清,我可以将实体对象传递到域层,但我觉得实体对象不仅仅是一个数据对象 - 就像将DAL的一部分传递到下一层一样.

假设我有一个UserDAL类,它应该在调用方法GetByID()时将实体User对象暴露给域,还是应该纯粹用于存储数据的纯数据对象?(在这种情况下似乎浪费重复)

你们在同样的情况下做了什么?有替代方法吗?

希望这不是太模糊.

非常感谢,

马丁.



1> Codewerks..:

我从我的DAL(使用LINQ2SQL)返回POCO的IQueryable,因此没有Linq实体对象离开DAL.这些POCO将返回到服务和UI层,并且还用于将数据传递回DAL以进行处理.Linq处理得非常好:

 IQueryable products = from p in linqDataContext.Products 
                                          select new MyObjects.Product //POCO
                                          {
                                              ProductID = p.ProductID
                                          };
 return products;


你如何处理服务层的更新,因为那层(我猜)使用你的POCO?假设您更新了产品名称,如下所示:MyObjects.Product product = from p in linqDataContext.Products其中p.ID = 1选择new MyObjects.Product // POCO {ProductID = p.ProductID,ProductName = p.ProductName}; product.Name ="新名称"; 现在,你如何更新?
推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有