我的项目现有模型。我想切换到实体框架,但我不想用EF生成的模型替换我的模型。
此外,我的模型与我的数据库模式非常不同,因此任何使用EF生成的模型并进行所有必需重构的机会似乎都太难了。
是否存在任何方式来拥有现有域,现有数据库并仅使用EF向我的域添加方法以包含O / RM层?
答案 0 :(得分:1)
在.NET 3.5SP1中,答案是一个很大的“不”,我害怕。在.NET 4.0中,这个故事看起来更有前途,引入了POCO支持(希望你可以使用自己的对象,尽管我还没有在公共测试版上试过它)。
请注意,您可以使用外部映射文件(并提供DataContext
对象)使用LINQ-to-SQL执行POCO(使用您自己的对象) - 但这些工具并不能完全帮助您这样做(它希望默认使用代码生成)。
目前,也许NHibernate(和类似的)是你最好的选择。
答案 1 :(得分:1)
如果您是MSDN订阅者,则可以下载beta release实体框架。 它支持POCO对象,这是你所指的,并且EF 1.0受到了严厉的批评。
ADO.NET设计团队最近刚发布了@ POCO in the Entity Framework: Part 1 - The Experience,这将帮助您正确地走上正轨。
根据我使用EFPocoAdapter(EF 4.0的前身)的经验,我很乐意为您推荐EF 4.0。
您还可以获得一些很酷的n层方案的支持,这意味着您可以将对象传递到另一个层,该层可以修改并返回它们,您仍然可以将它们持久保存到数据库中。其他层不必了解实体框架,因此您可以清楚地分离关注点。