您的位置:首页 > 其它

Entity Framework4.0 (三)概述(EF4 的Code First方法)

2011-12-17 23:29 155 查看
EF4支持三种构建方法:1. Database First方法。2.Model First方法。3.Code First 方法。开发人员可根据具体的项目情况,选择任一种方法。

上次快速演示了Model First的方法。这次演示Code First方法。

EF4.0引入CTP4可支持Code First了。Microsoft在EF4.1中引入EntityFramework4.1/4.2加强Code First的支持。(EF4.1的DataAnnotation, Fluent API 更完善,对POCO的支持更直接方便。关于EF4.1/4.2的使用,我在后面博文中我会补上的。)

在此,给出EF4.0的使用方法以快速演示:

首先,我们要下载并安装CTP4:URL http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8812

当安装完成CTP4后。(安装CTP4之前最好把Visual Studio2010关掉。)

1. 启动Visual Studio 2010.

2. 创建一个Console Application : 名称:EFCodeFirstWalkthrough

3. 在解决方案上右键,选择:添加一个类库项目:名称:EFCodeFirstWalkthroughModel。

4. 右键EFCodeFirstWalkthrough项目,添加.NET类库引用:Microsoft.Data.Entity.CTP; 添加.NET类库引用:System.Data.Entity.添加项目引用:EFCodeFirstWalkthroughModel.

5.在类库项目中添加类文件:Author.cs,Book.cs,Person.cs,Publisher.cs:代码如下:

Program

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EFCodeFirstWalkthroughModel;
using System.Data.Entity.ModelConfiguration;
using System.Data.SqlClient;

namespace EFCodeFirstWalkthrough
{
class Program
{
static void Main(string[] args)
{
var builder = new ModelBuilder();
builder.Configurations.Add(new BookConfiguration());
builder.Entity<Person>();
builder.Entity<Publisher>().Property(p => p.Name).IsRequired().HasMaxLength(50);
var model = builder.CreateModel();
using (var connection = new SqlConnection(@"Server=.\SQLEXPRESS;Database=CodeFirstWalkthrough;Trusted_Connection=True;"))
{
using (var context = model.CreateObjectContext<BookCatalog>(connection))
{
if (!context.DatabaseExists())
{
context.CreateDatabase();
}
var book = new Book
{
ISBN = "1111",
Title = "Intro to Code First",
FirstPublished = DateTime.Today,
IsFiction = false,
Author = new Author { FirstName = "Rowan", LastName = "Miller" },
Publisher = new Publisher { Name = "EF Books" }
};
context.Books.AddObject(book);
context.SaveChanges();
}
}
}
}
}


编译项目,执行。

然后观察数据库:会发现生成一个名为CodeFirstWalkthrough的数据库文件。并且在里面有数据表生成。

注意:在此项目演示过程中,我们并未指定SqlConnection所用的连接字符串,但是EF4会利用我们指定给SqlConnection的参数去生连接特定的数据库服务器,并生成数据库。

好了,Code First 先到这里吧。休息咯!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: