我可以将ADO.NET实体框架与现有模型一起使用吗?

时间:2009-05-25 10:32:27

标签: entity-framework model

我的项目现有模型。我想切换到实体框架,但我不想用EF生成的模型替换我的模型。

此外,我的模型与我的数据库模式非常不同,因此任何使用EF生成的模型并进行所有必需重构的机会似乎都太难了。

是否存在任何方式来拥有现有域,现有数据库并仅使用EF向我的域添加方法以包含O / RM层?

2 个答案:

答案 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层方案的支持,这意味着您可以将对象传递到另一个层,该层可以修改并返回它们,您仍然可以将它们持久保存到数据库中。其他层不必了解实体框架,因此您可以清楚地分离关注点。