当前位置: 首页 > news >正文

【翻译】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

转载于:https://www.cnblogs.com/nianming/archive/2011/11/16/2251599.html

相关文章:

  • 颜值担当 金羚洗衣机引领新时尚
  • 降水如何转为资源?下水道体现城市智慧
  • Const and volatile的区别和简介(英文版的)
  • 针对美国联邦机构的NIST网络框架将出台
  • [linux学习]apt-get参数解析
  • 我们工作到底为了什么?
  • 标签概述及GoodMES云标签的创新应用
  • 勒索病毒卷土重来!目标对准安卓机伪装身份诱惑人
  • 程序员一次跳槽失败的经历[转]
  • 业内新声音 黑客将在网络安全中获得新角色
  • FreeBSD上Enter full pathname of shell or RETURN for /bin/sh 问题的解决
  • 【JAVA基础】HashSet、LinkedHashSet、TreeSet使用区别
  • 嵌入式BI工具:好钢要用在刀刃上
  • 【转载】系统性能调优吐血总结分享
  • Linux 2.6内核中新的锁机制--RCU
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • CAP理论的例子讲解
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • CSS实用技巧干货
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • EOS是什么
  • extjs4学习之配置
  • IndexedDB
  • Magento 1.x 中文订单打印乱码
  • spring + angular 实现导出excel
  • SpringCloud集成分布式事务LCN (一)
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • vue-cli在webpack的配置文件探究
  • 从0实现一个tiny react(三)生命周期
  • 电商搜索引擎的架构设计和性能优化
  • 分享几个不错的工具
  • 构造函数(constructor)与原型链(prototype)关系
  • 两列自适应布局方案整理
  • 普通函数和构造函数的区别
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 如何利用MongoDB打造TOP榜小程序
  • 如何设计一个比特币钱包服务
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​人工智能书单(数学基础篇)
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • # C++之functional库用法整理
  • ###STL(标准模板库)
  • #laravel 通过手动安装依赖PHPExcel#
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (1)SpringCloud 整合Python
  • (14)Hive调优——合并小文件
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (转)3D模板阴影原理
  • *setTimeout实现text输入在用户停顿时才调用事件!*