我正在做一个使用实体框架的项目。可以使用EF生成的类的部分类作为业务层吗?我开始认为这就是EF的用法。
我曾尝试使用DTO模式,并很快意识到我只是创建了一堆映射类,这会重复我的工作,也会导致更多的维护工作和额外的层。
我想使用self-tracking-entities并将EF实体传递给所有层。请分享你的想法和想法。谢谢
发布于 2010-06-28 05:08:19
我看过使用分部类,发现将数据库模型向上公开到UI层是有限制的。
出于几个原因:
,而不是遇到副作用。
公共类顺序{ ...公共Guid CustomerID { get;set;} ... }
而不是使用由EF生成的具有公开引用的实体模型……
public class Order
{ ...
public Customer Customer { get; set; }
... }这样,只有接受订单的操作才需要客户的id。为什么需要为与接受订单相关的操作构造一个Customer (以及可能的其他对象)?
如果您担心复制和映射,那么可以看看Automapper
发布于 2010-05-31 05:17:46
我不会这样做,原因如下:
但是,如果您有一些特定于数据模型的代码,请放置部分类,以避免在重新生成模型时丢失它。
发布于 2010-05-31 04:34:48
我是不会做那种事儿的。尽量保持各层的独立性。因此,数据库模式中的微小更改不会影响所有层。
实体可以用于数据层,但不应该用于数据层。如果有的话,提供要使用的接口,并让你的实体实现它们(在部分文件上)。BL不应该知道实体,而应该知道接口。
https://stackoverflow.com/questions/2940190
复制相似问题