ADO.NET Entity Framework 之 Code First 快速入门
ADO.NET Entity Framework CTP 5 (以下简称CTP5)已经发布好长时间了。它将是最后一个CTP版本(adonet博客里面是这样说的)。至于最后的归宿, 会不会集成到VS2010 SP1里面去?
本篇博文仅仅介绍快速入门,更多内容您可以访问adonet博客或者等待下文。
在这之前,您首先需要下载CTP5.
下面以最简单的文章和文章类型举例:
首先创建一个解决方案,引用CTP5,System.Data.Entity和System.ComponentModel.DataAnnotations
解决方案如下:
Model中的两个类代码非常简单:
ArticleType.cs
Article.cs
其中,在字段上加Key特性的,将会生成表的主键,virtual字段在此作用是延迟加载。
Context.cs 代码比较简单,继承自DbContext
在App.Config中配置如下连接字符串
<connectionStrings>
<add name="Context" connectionString="pwd=abc123;uid=sa;database=CodeFirst;server=.\sql2008" providerName="System.Data.SqlClient" />
</connectionStrings>
注意:providerName 必不可少
至此,Code First代码基本完成。下面进行测试
准备测试数据。在Porgram.cs编写如下代码:
在程序入口写入下面代码:
DbContext将会根据Model自动创建数据库和表。
同时数据已插入数据库
Post Comment
Context.cs中类名必须和配置文件中连接字符串的名字一样。我在做的时候用的是在构造函数中:base("连接字符串的名字"),可是总是报错:
类型“System.Data.Objects.ObjectContext”在未被引用的程序集中定义。必须添加对程序集“System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的引用。 E:\asp.net学习资料\Entity Framework Code-first\MvcApplication1\MvcApplication1\Models\EntityDataContext.cs 8 12 MvcApplication1
请问什么原因啊?引用我也添加了。reply: System.Data.Entity程序集未加载,推荐使用CYQ.Data 数据框架来操作数据,相关视频教程在:www.cyqdata.com/cyqdata中。