|
|
1
4
在大多数情况下,实体对象和编写sql之间的一层甜蜜的美好 是 你的DAL。linq的全部目的是让dal具有比过去更具表现力的结构。
如果没有linq,在bl中可能只限于方法调用,比如
如果你把linq的力量隐藏在传统的dal后面,那么使用linq有什么意义呢? |
|
|
2
3
对于一个足够简单的应用程序,直接使用linq实体的最大好处是-简单。您可以避免在代码中再添加一层,可以避免编写大量的样板逻辑来从业务对象映射到LINQ实体(尽管有类似工具)。 AutoMapper 这在这里会有很大帮助。 另一方面,正如您所说-您的数据库可能不是您的域模型的一个spitting映像。然后,如果您需要此功能来在给定的物理数据库模型和逻辑域模型之间进行映射,那么您应该改为查看实体框架?这正是EF的支柱——这两个模型以及它们之间的映射层。 马克 |
|
|
3
1
它取决于 如果你是域对象 简单的 你的项目很小,那么使用这些类就不是问题了。编写一个完整的额外层来重复这些类是浪费时间的。 如果对象是 复杂的 而且不要以一种拘束的方式进行映射,另一层对于将这些细节从数据访问层中分离出来至关重要。 如果你真的不确定,你可以直接开始使用它们,然后一旦你需要它,再添加另一层。 |
|
|
4
0
我想这要看情况。 我现在正在写一个wcf服务,我的数据模型不是很复杂,但是所有的表都有外键,表之间的关系使得linq创建了一个非常复杂的对象树。 从客户机的角度来看,检索所有这些对象树是没有意义的,而且返回的xml消息将非常繁重(因此,如果不更改消息大小max allowed value,我将得到错误)。 在这种情况下,我必须在linq对象上创建自定义视图,以返回客户机希望检索的数据。这相当痛苦,因为我不得不重写大多数实体,但最终我完全控制了与客户的通信。 |