【翻译】EF 4.2 Model & Database First演示

一、创建应用程序

为了使问题简单,我们建立一个基本的控制台应用程序,使用DbContext执行数据访问:

1. 打开Visual Studio 2010

2. File -> New -> Project…

3. 从左侧菜单中选择"Windows",然后选择"Console Application"

4. 输入"ModelFirstSample"作为名字

5. 选择"OK"

二、创建模型

1. 让我们继续,在项目中添加一个Entity Data Model:

2. Project –> Add New Item…

3. 从左侧菜单选择"Data"

4. 从可用项目列表中选择"ADO.NET Entity Data Model"

5. 命名为"PersonModel.edmx"

6. 单击"Add"

本次演示使用Model First,但是如果要映射到一个现有的数据库,那么选择"Generate from database",根据提示操作,然后跳到步骤四。

7. 选择"Empty model"

8. 单击"Finish"

让我们往模型中添加一个Person实体:

9. 在设计器上右击  –> Add –> Entity

10. 命名实体为"Person"

11. 单击"OK"

12. 在Person实体上右击–> Add –> Scalar Property

13. 命名属性为"FullName"

三、创建数据库

现在我们已经定义了模型,接下来我们就可以生成数据库架构存储数据了:

1. 右击 –> Generate Database from Model

2. 单击"New Connection…"

3. 在Select or enter a database name中输入"ModelFirstSample"

连接属性

4. 在提示创建数据库对话框中选择"是"

QQ截图20111116171900

5. 单击"Next",然后"Finish"

6. 在生成的脚本上,右击 –> Execute SQL…

7. 指定你的数据库服务器,然后单击"Connect"

四、DbContext代码生成

PersonModel通常派生自ObjectContext,实体类派生自EntityObject,但是我们想使用简化的DbContext API。

使用DbContext,我们需要安装EntityFramework NuGet包:

1. Project –> Add Library Package Reference…

2. 选择"Onlie"选项卡

3. 搜索"EntityFramework"并选择该包

4. 点击"Install"

另一种方法是在Package Manager Console中输入"Install-Package EntityFramework"安装。

安装EntityFramework 4.2

现在可以使用DbContext代码生成模板了:

1. 在设计器上右击–> Add Code Generation Item…

2. 在左侧菜单中选择"Online Templates"

3. 搜索"DbContext"

QQ截图20111116175857

你会注意到有两个项添加到你的项目中:

PersonModel.tt
这个模板为模型中的每个实体生成非常简单的POCO类

PersonModel.Context.tt
这个模板生成一个派生自DbContext的类,用来查询和持久化数据

五、读写数据

是时候访问一些数据了。代码在Program文件中的Main方法中,如下:

class Program
{
    static void Main(string[] args)
    {
        using (var db = new PersonModelContainer())
        {
            // Save some data 
            db.PersonSet.Add(new Person { FullName = "Bob" });
            db.PersonSet.Add(new Person { FullName = "Ted" });
            db.PersonSet.Add(new Person { FullName = "Jane" });
            db.SaveChanges();
            // Use LINQ to access data 
            var people = from p in db.PersonSet
                         orderby p.FullName
                         select p;
            Console.WriteLine("All PersonSet:");
            foreach (var person in people)
            {
                Console.WriteLine("- {0}", person.FullName);
            }
            // Change someones name 
            db.PersonSet.First().FullName = "Janet";
            db.SaveChanges();
        }
        Console.WriteLine("Press any key to exit...");
        Console.ReadKey();
    }
}

 

总结

在这个演示中,我们使用DbContext API进行Model First开发。我们创建了一个模型,生成了数据库,交换DbContext代码生成以及保存和查询数据。

原文:EF 4.2 Model & Database First Walkthrough

posted @ 2011-11-16 21:55  BobTian  阅读(2947)  评论(6编辑  收藏  举报