第一章 欢迎来的Code First(2)

未经许可,不许转载

Code First的起源

    如前述之EF4,微软想去创造一条新的方式去建模,该方式从EF开始就被很多开发者所诉求。这种新的建模方式称之为CodeFirst。Code First允许你通过代码定义你的域模型而不是通过EDMX这样的XML文件。甚至对于Model First和数据库优先这样的方式——用代码生成器去提供你工作所需的类,很多开发者只是简单地想去通过设计器去设计而不是让它去生成类,他们只是想去写代码。

    在CodeFirst你通过POCO类去定义你的域模型而无需依赖EntityFramework。CodeFirst能从你模型的结构便能推断出很多信息。甚至你能提供更进一步的配置去描述模型或者重写CodeFirst所推断的内容。这种配置同样定义在代码中而无需XML文件或者设计器。

    EF4在与设计器工作时同样支持POCO类。EF团队提供了一个POCO模板,该模板能够生成符合你要求的POCO类。这些生成出来的类能够随着设计器中的改变而随时更新内容。你也能用你自己的POCO类而不是生成出来的类,但是如果你决定使用这种概念,你则必须保证你的类和EDMX文件同步。这就是说任何改变必须同时应用在两个地方——一个在设计器中,另一个在你的自定义类中。用CodeFirst的一个巨大的好处就在于你的类就是模型。这也意味着模型的任意改变只需更改一个地方——你的POCO类。

    Code First,数据库优先和ModelFirst都是EntityFramework构建数据获取的实体数据模型的途径。一旦一个模型被构建了,那么EntityFramework运行时也表现出同样的行为,而无需考虑你如何创建模型。不管你是使用设计器还是使用基于代码的模型,那完全是你自己的决定。图1-1展示了你使用EntityFramework构建模型时的不同选项。


图1-1建模过程选项

    微软提供数据库优先,Model First,Code First作为工作可选流程(例如Code First流程)。那是因为每个选项都是一个步骤集合,不管是你自己执行这些步骤还是自动执行。例如,数据库优先流程,你必须先从数据库反转引擎执行,然后让代码生成器去创建类。Code First工作流程则是从你编写类开始,然后你可以选择让Code First去创建与这些类相关的数据库。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值