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 ,完成!

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

  1. ADO.NET Entity Framework

    ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案, 早期被称为 ObjectSpace,现已经包含在 V ...

  2. 使用 Entity Framework Code First

    使用 Entity Framework Code First 在家闲着也是闲着,继续写我的[ASP.NET MVC 小牛之路]系列吧.在该系列的上一篇博文中,在显示书本信息列表的时候,我们是在程序代码 ...

  3. 读书笔记之ado.net entity framework

    提供了对数据访问的一种抽象层,是更加易于以编程的方式来操作及管理数据 有以下几种模式:Model First, Database First, and Code First 现在主要讨论code Fi ...

  4. 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 st ...

  5. APS.NET MVC + EF (02)---ADO.NET Entity FrameWork

    2.1 Entity Framework简介 Ado.net Entity Framework 是Microsoft推出的ORM框架. 2.1.1 什么是ORM 对象关系映射(Object Relat ...

  6. ADO.NET-EF:ADO.NET Entity Framework 百科

    ylbtech-ADO.NET-EF:ADO.NET Entity Framework 百科 ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 ...

  7. Entity Framework Code First学习系列目录

    Entity Framework Code First学习系列说明:开发环境为Visual Studio 2010 + Entity Framework 5.0+MS SQL Server 2012, ...

  8. ADO.NET Entity Framework CodeFirst 如何输出日志(EF 5.0)

    ADO.NET Entity Framework CodeFirst 如何输出日志(EF4.3) 用的EFProviderWrappers ,这个组件好久没有更新了,对于SQL执行日志的解决方案的需求 ...

  9. Entity Framework Code First数据库连接

    1. 安装Entity Framework 使用NuGet安装Entity Framework程序包:工具->库程序包管理器->程序包管理器控制台,执行以下语句: PM> Insta ...

随机推荐

  1. [c/c++]指针(4)

    现在讲一下指针的主要用途和常见错误. [用途] 1.用作形参 首先,常见新手写交换函数: void swap(int a,int b){ int t = a; a = b; b = t; } 主函数里 ...

  2. [noip模拟题]LGTB 玩THD

    LGTB 最近在玩一个类似DOTA 的游戏名叫THD 有一天他在守一座塔,对面的N 个小兵排成一列从近到远站在塔前面每个小兵有一定的血量hi,杀死后有一定的金钱gi 每一秒,他都可以攻击任意一个活着的 ...

  3. POJ 1679 The Unique MST (次小生成树)题解

    题意:构成MST是否唯一 思路: 问最小生成树是否唯一.我们可以先用Prim找到一棵最小生成树,然后保存好MST中任意两个点i到j的这条路径中的最大边的权值Max[i][j],如果我们能找到一条边满足 ...

  4. UVA 11426 GCD - Extreme (II) (欧拉函数)题解

    思路: 虽然看到题目就想到了用欧拉函数做,但就是不知道怎么做... 当a b互质时GCD(a,b)= 1,由此我们可以推出GCD(k*a,k*b)= k.设ans[i]是1~i-1与i的GCD之和,所 ...

  5. json库的编译方法和vs2010中导入第三方库的方法

    json库的编译方法和vs2010中导入第三方库的方法 一.去相应官网下载json.cpp文件 Jsoncpp下载:https://sourceforge.net/projects/jsoncpp/  ...

  6. DFS回溯-函数递归-xiaoz triangles

    题目:小z 的三角形 ★实验任务 三角形的第1 行有n 个由"+"和"-"组成的符号,以后每行符 号比上行少1 个,2 个同号下面是"+", ...

  7. UVa 11991 一道简单题

    https://vjudge.net/problem/UVA-11991 题意:给出一个包含n个整数的数组,你需要回答若干询问.每次询问两个整数k和v,输出从左到右第k个v的下标. 思路: 把每个数字 ...

  8. 为什么我的电脑win系统没有便笺功能?为什么我在开始菜单里找不到便笺功能?

    有些网友表示,为什么我的电脑没有便笺功能?为什么我在开始菜单里找不到便笺功能? 从问题可以基本判断出来,这些网友使用的Win7版本有可能是买笔记本或者台式电脑时预装的Win7家庭普通版或者Win7精简 ...

  9. iBatis的CRUD操作详细总结

    昨天晚上看了一下关于iBatis的一个讲解的视频,讲的和我的这个简单的总结差不多.... 思考了一下还是把主要操作都总结一下吧,当然这里也不是全的,知识简单的CRUD... 首先我觉得持久层的操作主要 ...

  10. Python day21模块介绍4(logging模块,configparser模块)

    1.日志等级从上往下依次降低 logging.basicConfig(#日志报错打印的基础配置 level=logging.DEBUG, filename="logger.log" ...