EF:代码优先约束

时间:2013-04-09 09:59:16

标签: winforms entity-framework ef-code-first ef-database-first

我正在使用EF 5开发Windows表单应用程序,并开始使用Code First方法构建数据库。 我的问题是:" Code first方法首先与数据库相比有一些限制,或者模型优先" ? 有什么建议吗?

2 个答案:

答案 0 :(得分:1)

具体而言(我将跳过一般的概述),

  

最困扰我的是缺少原生支持   各种Db对象,视图,UDF,sp-s   含义 - 当然,您可以使用它们 - 但您必须“注入” SQL并与“C#POCO”同步

您现在可以解决大部分问题 - 例如UDF,SP-s可以通过SQL查询调用 - 并映射回来。

话虽如此 - 没有真正的支持,如果你习惯于在Db方面工作 - 那可能会有点痛苦。即当你决定数据库的每个方面时,你必须放弃一点'完全控制',并且可以进行调整和调整。你可以做大部分工作,但保持同步并不容易。

其他“第一”选项 - 在这个意义上更为先进。

在性能方面 - 代码优先是the most involved - 即它没有预先生成(开箱即用),这增加了加载时间。但是,与其他EF选项相比,这个问题越来越少 - EF Power Tools可以通过使用sort of views(没有与Db视图无关)来代码生成其中的一些来提高性能。

总的来说,我也经常使用它 - 因为它是最“灵活”的IMO,值得付出额外的努力。

答案 1 :(得分:0)

快速搜索显示以下答案(来自关于EF的关键人物):

Code-first vs Model/Database-first

虽然问题是关于EF 4.1的,但答案应该提供足够的信息,以便您做出自己的决定。