![]() |
1
0
我要做的是在一个项目中拥有所有的数据访问(在您的例子中是linq to sql),然后我拥有另一个使用数据访问项目的业务项目,从而从UI层分离数据访问项目。 在您的Books示例中,我的业务层将有一个名为Book的类:
这意味着您的UI与实际的数据访问完全分离,并且您的所有书籍逻辑都被合理地包含在一个类中。
通过将IOC与Microsoft Unity或Castle这样的系统结合使用,您可以进一步分离,这样就不必编写
|
![]() |
2
0
LINQtoSQL提供实体和数据库表之间的1:1映射。可以说,实体本身是从数据库中抽象出来的一个层次,而这正是您所依赖的。 如果您正在对Linq to SQL提供的实体进行1:1的复制,那么这可能意味着不值得将它们放在那里,因为您仍然像与Linq to SQL提供的实体一样与这些类绑定。 通过创建另一个层,您还可以消除Linq to SQL提供的更改跟踪的好处,这意味着您必须将类中的任何更改复制到Linq to SQL提供的实体中,才能执行数据操作。
如果你想把
为了展示(视图模型)或业务逻辑的好处,您可以考虑将数据投影到不同的类中。如果我想使用Linq to SQL,这是我倾向于采用的路线,但我不希望实体和视图模型之间的1:1映射。 |
![]() |
Rm558 · 是否可以更改XML类型上的LINQPad代码生成? 7 年前 |
![]() |
MJK · 规范模式-使用ICollection实现表达式 7 年前 |
![]() |
Roland Ebner · 为实体框架多对多关系构建表达式树? 7 年前 |