【问题标题】:EntityFramework withour EDMX没有 EDMX 的实体框架
【发布时间】:2011-10-05 09:17:05
【问题描述】:

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

问题是我没有看到太多关于 EDMX 免费方法的讨论。有人在使用它吗?有经验的可以分享一下感受吗?有已知的限制吗?有优缺点吗?

亚瑟

【问题讨论】:

    标签: entity-framework


    【解决方案1】:

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

    一般有四种方法:

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

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

    代码优先有一些限制 - 它不支持 EDMX 提供的所有映射功能,例如:

    • 存储过程映射(不代表先用代码不能执行SP)
    • SQL 函数映射
    • 高级 EDMX 功能,例如定义查询、查询视图、模型定义函数

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

    【讨论】:

    • 感谢您的回答(这里和其他地方)。我注意到你认为你不喜欢实体级别验证的兄弟类。当类生成为部分时,您知道更好的解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 2013-11-26
    • 1970-01-01
    • 2011-09-08
    相关资源
    最近更新 更多