没有EDMX的实体框架

时间:2011-07-14 14:06:22

标签: entity-framework

我们即将开始使用EF作为我们的ORM。我们有自己的MetaData代表数据库stracture,我们将生成我们需要的任何东西。 我们想知道是否使用“旧的”EDMX认证,或者使用新的EDMX免费方法(使用DbSet和DbContext)。当我们执行自己的代码/ edmx生成时,生成EDMX然后生成对象和上下文似乎很奇怪。

事情是我没有太多关于EDMX免费方法的讨论。是否被任何人使用?有经验的人可以分享他们的印象吗?有已知的限制吗?有利有弊吗?

灰粉

1 个答案:

答案 0 :(得分:1)

您是否在询问是否有人使用代码优先? :)通过检查以及中的问题数量,我猜人们正在使用它。关于代码优先x非代码优先有几个问题。我回答说:

通常有四种方法:

  • 模型优先(从EDMX生成的数据库)
  • 数据库优先(从数据库生成的EDMX)
  • 代码优先(从代码映射生成的数据库)
  • 数据库首先使用代码映射(为现有数据库手动创建的代码映射或由EF Power Tools CTP生成的手动更新映射)

方法的选择通常取决于您希望如何开发应用程序(如链接答案中所述)。它还取决于您是否要使用ObjectContext API或DbContext API。前一种方法通常与前两种方法一起使用(但秘密是它应该与代码优先一起使用)后一种方法与所有方法一起使用。

代码优先有一些限制 - 它不支持EDMX所做的所有映射功能:

  • 存储过程映射(这并不意味着您在首次使用代码时无法执行SP)
  • SQL函数映射
  • 高级EDMX功能,如定义查询,查询视图,模型定义函数

我不明白为什么您要尝试将代码生成工具与EF结合使用。要么使用你的东西,要么使用EF的东西。您将避免并发症和不兼容性。