EntityFramework4.0Futures预览版(现在是CTP3)提供了一个只包含代码的建模范例,用于在类型和数据库之间进行Map。不涉及edmx文件,也不需要EDM设计器。
我想知道只有代码和模型优先相比有什么大的优势?在代码优先中可以做什么,而在其他模型中不能做(模型优先&数据库优先)?我在想也许可以更多的控制,但我仍然不能修改CSDL,SSDL,MSL文件和我自己的代码来得到我需要的结果。“仅代码”模型涉及在代码中执行所有操作,这些操作可能容易出错,例如生成错误的所需模型或丢失属性定义。
3条答案
按热度按时间hmae6n7t1#
这真的是一个偏好的问题。引用EF设计博客:
然而,许多开发人员将他们的代码视为模型。
理想情况下,这些开发人员只想编写一些域类,而不必接触设计器或XML片段,就可以在实体框架中使用这些类。基本上,他们只想编写“代码”。
Link
9rbhqvlz2#
根据我的经验我会选择Model-First,因为它允许你以如此复杂的方式对你的领域进行建模,而在Code-First中进行建模将是一个挑战。事实上,有几个高级建模场景是你在第一版代码中无法实现的。这完全是基于我对建模可能变得多么复杂的理解而得出的想法。但是,直到EF团队最终完成Code-首先,我们不知道。
另外,如果你是从linq转到sql的,你会惊讶地发现实体模型设计器很好,它工作得很好,可以让你用开发人员很少的精力构建复杂的模型。
sycxhyv73#
这样做的一个直接好处是,如果您正在编写分部类来向实体添加方法或数据注解,那么现在您可以将模型定义和方法都放在一个地方。如果模型随着时间的推移变得复杂,那么当您需要添加新字段、确保它经过验证并使用它添加逻辑时,您可能很难在需要触及的任何地方保持直线。