ADO.NET Entity Framework -Code Fisrt 开篇(一)

ADO.NET Entity Framework -Code Fisrt 开篇(一)

2012-12-25 15:13 by 易code, 911 阅读, 0 评论, 收藏, 编辑

ADO.NET Entity Framework 是微软的一套实体映射框架。发布EF4.1(Entity Framework )时,又提出了代码先行的设计理念(the code comes first, the rest follows)。具体好处哪是多多,查资料吧。

参考资料:Programming Entity Framework Code First.pdf

开发环境:VS2010

开发版本:ADO.NET Entity Framework 4.1

下载链接:http://download.microsoft.com/download/0/7/A/07AC6336-D665-4442-B841-39D11BBF2563/EntityFramework41.exe

引用dll:方法一:安装下载的exe文件,安装文件内有一个EntityFramework.dll 文件。 项目中需要引用该dll文件。

方法二: 在VS2010 中新建一个项目,在引用处选择 Add Libraray Package Reference  ,在左边选择 online,搜查Entity Framework  安装。

下面是Code Fisrt 的快速开始。

1 新建一个控制台项目QuickStart。添加一个Model文件夹,在里面添加如下几个类文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Entity;
namespace QuickStart.Model
{
    /// <summary>
    /// 统一字典表
    /// </summary>
   public class Dictionary
    {

public string DictionaryID { get; set; }
       public string DictionaryValue { get; set; }
       public string ParentID { get; set; }
       public string Parameter { get; set; }
       public DateTime LastUpdateTime { get; set; }
       public string Remark { get; set; }
    }
}

//字典表中保存了每一个Item 的分类信息,字典表分类和Item 是一对多关系

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations; //数据注释(需要添加引4.0版本)
namespace QuickStart.Model
{
   public class Item
    {
        public string ItemID { get; set; }
        public string Name { get; set; }
       public decimal Price { get; set; }      
       public Dictionary ItemType { get; set; }
    }
}

2  添加一个DBContextAPI  继承自DbContext 类,

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Entity; //添加引用
using QuickStart.Model;
namespace QuickStart
{
   public class DBContextAPI :DbContext
    {
       /// <summary>
        /// 通过构造函数定义配置文件中使用的链接字符串name="OrderDB"
        /// <para>否则采用默认,name="DBContextAPI" 类名</para>
       /// </summary>
       public DBContextAPI() : base("OrderDB") { }

public IDbSet<Item> Items { get; set; }
       public IDbSet<Dictionary> Dictionarys { get; set; }
          }
}

3 添加一个app.config 配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="OrderDB" providerName="System.Data.SqlClient"
         connectionString="server=.;uid=sa;pwd=123456;database=OrderDB"/>
  </connectionStrings>
</configuration>

4 在main 函数中添加如下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QuickStart.Model;
//using Microsoft.SqlServer.Server;
namespace QuickStart
{
    class Program
    {
        static void Main(string[] args)
        {
           // 测试,并自动创建数据库表模型
            CreateDataBase();
            Console.ReadKey();
        }

private static void CreateDataBase()
        {
            using (var db = new DBContextAPI())
            {
                var dict = new Dictionary()
                {
                    DictionaryID = "20121225001",
                    DictionaryValue = "笔记本电脑",
                    Parameter = "",
                    ParentID = "ItemType",
                    Remark = "笔记本电脑分类Key",
                    LastUpdateTime = DateTime.Now
                };
                db.Dictionarys.Add(dict);
                int result = db.SaveChanges();
                Console.WriteLine("追加{0}条记录成功!", result);
            }
        }
    }
}

5 运行程序,成功后,将在数据库中自动创建好数据库表结构.

Item 表

OK ,完成!

时间: 2024-10-12 16:55:23

ADO.NET Entity Framework -Code Fisrt 开篇(一)的相关文章

读书笔记之ado.net entity framework

提供了对数据访问的一种抽象层,是更加易于以编程的方式来操作及管理数据 有以下几种模式:Model First, Database First, and Code First 现在主要讨论code First这种模式 Conceptual Schema Defi nition Language (CSDL), the Storage Schema Defi nition Language (SSDL), and theMapping Schema Language (MSL)提供了实体类和数据库之

SQLITE WITH ENTITY FRAMEWORK CODE FIRST AND MIGRATION

Last month I’ve a chance to develop an app using Sqlite and Entity Framework Code First. Before I started with this project, I thought everything will be easy because Sqlite and Entity Framework are both popular framework. Maybe I just need to instal

[VS2010] ADO.NET Entity Framework 新功能:永续保存无知对象 (Persistence-Ignorant Object) Overview

ADO.NET Entity Framework 的新功能:永续保存无知对象.可以说是 Entity Framework 划时代的新功能,颠覆一般的数据组件/DAL 与数据库间的交互方式. 前一篇文章介绍了 ADO.NET Entity Framework 的模型优先设计 (Model First Design) 功能,有没有觉得 .NET Framework 4.0 中的 ADO.NET Entity Framework 进步了很多呢?如果你这样就满足了,那接下来的东西你看了可能会像某啤酒广告

Entity Framework Code First (三)Data Annotations

Entity Framework Code First 利用一种被称为约定(Conventions)优于配置(Configuration)的编程模式允许你使用自己的 domain classes 来表示 EF 所依赖的模型去执行查询.更改追踪.以及更新功能,这意味着你的 domain classes 必须遵循 EF 所使用的约定.然而,如果你的 domain classes 不能遵循 EF 所使用的约定,此时你就需要有能力去增加一些配置使得你的 classes 能够满足 EF 所需要的信息. C

Entity Framework Code First数据库迁移(DB Migration)

一.手动迁移 第1步.启用数据库迁移 打开程序包管理器控制台 工具->库程序包管理器->程序包管理器控制台 打开控制台后,在控制台管理窗口输入 Enable-Migrations 指令,铵下回车键,到这里已启用了数据库迁移,但还没执行,结果如下图: 第2步.运行数据库迁移 在控制台管理窗口输入 Add-Migration指令,来新增一条数据库迁移版本,输入时必须要带上一个版本名称 Add-Migration AddProductCategoryTypeName,如下图: 运行完成后会在解决方案

Entity Framework Code First数据库连接

参考页面: http://www.yuanjiaocheng.net/entity/entitytypes.html http://www.yuanjiaocheng.net/entity/entity-relations.html http://www.yuanjiaocheng.net/entity/entity-lifecycle.html http://www.yuanjiaocheng.net/entity/code-first.html http://www.yuanjiaochen

Entity Framework Code First 映射继承关系

转载 http://www.th7.cn/Program/net/201301/122153.shtml Code First如何处理类之间的继承关系.Entity Framework Code First有三种处理类之间继承关系的方法,我们将逐一介绍这三种处理方法. 1.Table Per Hierarchy(TPH): 只建立一个表,把基类和子类中的所有属性都映射为表中的列. 2.Table Per Type(TPT): 为基类和每个子类建立一个表,每个与子类对应的表中只包含子类特有的属性对

Entity Framework Code First属性映射约定

参考页面: http://www.yuanjiaocheng.net/entity/code-first.html http://www.yuanjiaocheng.net/entity/mode-first.html http://www.yuanjiaocheng.net/entity/database-first.html http://www.yuanjiaocheng.net/entity/choose-development-approach.html http://www.yuan

Entity Framework Code First 常用方法集成

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86