Entity Framework的入门学习
Entity Framework 4.1已经正式发布了,新添加了一种称为Code First的开发模式。意思就是代码优先;
简单的说明:
准备:您需要已经安装VS2010以及Entity Framework 4.1
1、新建项目或网站
无论是网站,还是项目都可以使用Code First的开发模式。
2、添加类库引用
EntityFramework
System.Data.Entity
System.ComponentModel.DataAnnotations //对Model层属性的定义,用属性注解来做持久化映射。
EF4.1中支持的包括如下属性:
Key 主键
StringLength 字符串长度
MaxLength 最大长度
ConcurrencyCheck
Required 必需
Timestamp 时间戳
ComplexType 复合类型
Column 映射列:column name, ordinal & data type
Table 映射表:name 和schema
InverseProperty
ForeignKey 外键
DatabaseGenerated
NotMapped 在数据库中排除
3、编写Model类
using System.ComponentModel.DataAnnotations.dll
public class DocModels
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
}
如果不添加这些映射,则框架会按照惯例进行相关的映射处理
属性可以参考:http://msdn.microsoft.com/en-us/library/dd901590(v=vs.95).aspx
4、创建DbContext,进行数据操作
为上边创建的Model添加数据集,可以进行数据操作的类,继承DbContext,其中的方法:如Find可以根据主键查找数据,新建kuiyuDB类
public class kuiyuDB:DbContext
{ public DbSet<DocModels> DocModel { get; set; }
}
5、添加数据库连接字符串
<connectionStrings>
<add name="kuiyuDB"//和定义的数据操作类相同
connectionString="Server=.;Database=DOC;User ID=sa;Password=sa;Trusted_Connection=False;Persist Security Info=True "/>
</connectionStrings>
注意这个数据连接的名称要和继承自DbContext的类的名称一致,数据库DOC在SQLServer中尚未创建。
6、编写数据处理
在global.cs中
public class KuiyuDBInitializer:DropCreateDatabaseIfModelChanges <kuiyuDB>
{
//向新数据库中添加初始化数据
protected override void Seed(kuiyuDB context)
{
base.Seed(context);
var content = new List<DocModels> {
new DocModels{ Name="asp.net" }
content.ForEach(l => context.DocModel.Add(l));
context.SaveChanges();
}
}
在Application_Start中添加一个初始化操作:
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
Database.SetInitializer<kuiyuDB>(new KuiyuDBInitializer());
//什么都不做
//Database.SetInitializer<DemoConn>(null);
}
调试运行,自动生成数据库
其它文章参考 代码优先的方式http://kb.cnblogs.com/page/97003/