[英]Is Entity Framework Dataannotations bad for DDD and separation of concerns?
[英]Entity Framework: Separation of concerns
我正在使用EF并想知道其他人如何将数据上下文与实体分开。
基本上我需要一个层来访问数据上下文(模型对象)来调用SaveChanges()等..而其他层需要访问实体类型本身。 因此,例如,如果一个方法返回一个实体并且我从我的UI调用该方法,那么我将不得不从UI引用该模型,这并不好。
有没有办法让实体类型在一个项目中,并在另一个项目中拥有数据上下文?
我想另一种方法是为每个实体创建接口,并将接口放在其他层可以引用的另一个项目中。 但这是一个很大的维护和痛苦的屁股
从您的实体创建一个域模型,它基本上反映了您拥有的字段/属性。 这可以在一个完全独立的项目中,单独的层。
要在两者之间进行映射 - EF实体和域模型类 - 我会使用像AutoMapper这样的工具来简化两个独立但几乎相同的类之间的分配。
通过这种方式,您可以获得干净,漂亮的分离,并为您节省大量无聊的打字!
在我看来,虽然这确实是一个痛苦的屁股,接口是更好的方式去。 你真的会实现松散耦合。
使用界面,您以后可以完全更改您的实体层,您的UI甚至不会注意到。 为此目的创建了接口,清晰的分离和隔离。
人们总是倾向于发现无聊和浪费时间的界面。 但是你忽略它们节省的时间,你会付钱给它,我告诉你!
Marc_s也给了你一个很好的答案(嘿,那是marc_s!),但在我看来不那么纯粹。
您也可以选择POCO实体对象,但是从这里开始耦合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.