相关疑难解决方法(0)

代码优先与模型/数据库优先

使用实体框架4.1代码优先于模型/数据库优先使用EDMX图表有什么优缺点?

我正在尝试完全理解使用EF 4.1构建数据访问层的所有方法.我正在使用Repository模式和IoC.

我知道我可以使用代码优先方法:手动定义我的实体和上下文并用于ModelBuilder微调模式.

我还可以创建一个EDMX图表并选择一个代码生成步骤,该步骤使用T4模板生成相同的POCO类.

在这两种情况下,我最终POCO都得到了ORM不可知的对象和源自的上下文DbContext.

数据库优先似乎最吸引人,因为我可以在企业管理器中设计数据库,快速同步模型并使用设计器对其进行微调.

那么这两种方法有什么区别?是仅仅关于VS2010与企业管理器的偏好?

entity-framework poco ef-code-first entity-framework-4.1 ef-database-first

607
推荐指数
9
解决办法
29万
查看次数

Code-First或Database-First,如何选择?

让我们假设我们将开始新项目 - 包含一些业务逻辑的应用程序,ASP.NET,WPF或两者的用户界面.我们想使用ORM或DAL代码生成器并在.NET类中实现我们的业务逻辑.我们可以通过几种基本方式表达我们对业务领域的看法:

  • 在.NET上实现业务类,让ORM生成适当的数据库模式
  • 手动创建数据库模式并通过代码生成器生成.NET类
  • 使用某种可视化设计器,可以生成业务类和数据库结构或脚本

您更喜欢写什么:"创建表人(...)"或"公共类人{...}"?
这些方式的优点和缺点是什么?
也许有一些特殊的情况,一种方式比另一种更好?
如何在特定项目中选择最佳方式?

我对"Code-First"(或"Model-First")方式非常熟悉,但似乎大多数ORM都设计为代码生成器或映射器,假设我将手动实现数据库结构和业务类.

基于expirience的答案和ORM的例子特别受欢迎.

编辑:注意,问题不是"在开始新项目时我应该先做什么?",但"应该手动声明/自动生成什么,域类或数据库结构?"

.net database orm

40
推荐指数
3
解决办法
6591
查看次数