lit*_*rva 8 orm entity-framework repository-pattern
按照Rob的方式,我有Linq to SQL向导生成的类,然后是POCO类的副本.在我的存储库中,我返回这些POCO而不是Linq to SQL模型:
return from c in DataContext.Customer where c.ID == id select new MyPocoModels.Customer { ID = c.ID, Name = c.Name }
我知道这样做的好处是POCO模型可以更容易实例化,这将使我的代码更易于测试.
我现在正在从Linq迁移到SQL到实体框架,我大约只有EF书的一半.通过从我的存储库而不是EF实体返回POCO,我似乎会失去很多好处.
我还没有真正接受单元测试,所以我觉得我浪费了很多时间来创建这些额外的POCO并编写代码来填充它们,当我看起来所有的东西都是可测试的代码时,我也是由于无法跟踪我的物体,因此会失去EF的许多好处.
有没有人对所有这些ORM/Repository东西的相对newb有任何建议?
安东尼
人们不喜欢自动生成对象的另一个原因(例如在LINQ to SQL中)是因为它们内置了"魔法".
通常魔法是不可见的,你从来没有注意到它,但是当你尝试做一些事情,比如序列化其中一个对象,然后反序列化它(例如当使用Web服务时)它与数据源的内部连接被打破,并且需要特殊的黑客攻击被雇用来"把魔法放回去".
使用POCO,您不必担心这些问题,并且可以更好地分离数据和服务层.当然,缺点是你必须写出许多无聊的POCO - >魔术对象和魔法对象 - > POCO转换代码.但最后我认为这通常是值得的,特别是对于大型或复杂的项目.
归档时间: |
|
查看次数: |
1350 次 |
最近记录: |