我有点困惑:随着EF的所有演变,我不知道我现在在哪里。
* EDMX是过去的选择,应该再使用了吗? *如果是这样,最佳选择是什么? *我讨厌edmx,我可以先升级到代码吗?
目前尚不清楚所有这些EF版本对我来说是什么
由于 乔纳森
答案 0 :(得分:0)
对于很多应用,如果您愿意,可以开始使用Code First。 Code First尚不支持的一件大事就是映射到存储过程。 (您仍然可以调用存储过程,但不能将实体CRUD操作映射到它们。)
话虽这么说,使用EDMX做数据库优先仍然是绝对支持和一个很好的选择,特别是你喜欢使用EF设计师。
EF 4.1及更高版本完全支持Code First和Database First。
就个人而言,我几乎总是选择Code First,即使使用现有的数据库,因为我是一个以代码为中心的人,而宁愿将我的所有映射保存在代码中,我可以轻松地重构,管理源代码管理,分成多个文件等。对我来说,处理代码工件比单片XML文档更容易和更好。
答案 1 :(得分:0)
这是评估实体框架使用情况的方法:
1)EDMX是一个完全有效的选项,特别是如果您有现有数据库并希望根据您的数据库架构生成实体。我最喜欢的一个好处是快速的数据层开发和低风险。当您具有复杂的现有存储过程时,将存储过程结果映射到类总是很好。
或强>
2)Code First是一个完全有效的选项,特别是如果您想基于面向对象的数据模型创建数据库。使用代码首先很容易制作大型重构,直到实现时间你才会想到它们。源代码控制更常见,代码和搁架/回滚是美丽的功能。
TL; DR版本: 它们都是完全可行的选择。它们都不会过时;它们也不会很快。
答案 2 :(得分:0)
我们在热身 EF Code First 中考虑了性能问题。 EF Code First需要几分钟才能开始,因为我们拥有一千个实体。因此,这个瓶颈迫使我们使用EDMX,并在实体模型更改后使用Interactive Pregenerated从First First中的Code First创建EDMX,并且在Other First Run预热时间大大降低。
但故事并未结束。在我们在开发区域看到我们在实体模型中有很多变化,因此在每次更改之后,应该经常重新创建(更新)EDMX文件。所以我们决定以编程方式创建EDMX并优化我们的实体模型的创建。