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/

 

posted @ 2012-02-15 11:56  奎宇工作室  阅读(291)  评论(0编辑  收藏  举报