标签:entity framework 框架 codefirst
CodeFirst是Entity Framework4.1后新增的一种生成模式,在这种方式下,你不需要在DBMS中创建数据库,也无需在VS中画实体模型了,你要做的仅仅是写写代码即可由ORM框架自动创建模型和数据库,非常的方便和简单(由于开发人员只是编写代码,不关心数据库的具体结构,因此也有人把这种方式叫做CodeOnly的).
下面就以一个简单的例子演示一下如何使用CodeFirst生成数据库.
一.新建一个项目并添加必要的引用.
二.编写代码.
1在项目中添加两个实体类和一个数据上下文类如下图所示
它们对应的代码如下:
Customer类:
<span style="font-size:18px;">public class Customer { [Key ]//标识这是对应数据库表的主键 public int Id { get; set; } public string CusName { get; set; } public virtual ICollection<OrderInfo> order { get; set; } }</span>
OrderInfo类:
<span style="font-size:18px;">public class OrderInfo { [Key ]//标识这个属性是数据表中的主键 public int Id { get; set; } public string Content { get; set; } /// <summary> /// 外键约束 /// </summary> public int CustomerId { get; set; } public Customer customer { get; set; } }</span>
HotelDBContext类:
<span style="font-size:18px;">public class HotelDBContext:DbContext { public HotelDBContext() :base("name=ConnCodeFirst") { } public DbSet<Customer> customer { get; set; } public DbSet<OrderInfo> orderInfo { get; set; } }</span>
然后再配置文件App.config中编写数据库的连接字符串,代码如下:
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <connectionStrings > <add name ="ConnCodeFirst" connectionString ="server=.;uid=sa;pwd=123456;database=CodeFirstDemoDB" providerName ="System.Data.sqlclient"/> </connectionStrings> </configuration></span>
最后在控制台应用程序的Program类中的主函数中创建数据库,代码如下:
<span style="font-size:18px;"> class Program { static void Main(string[] args) { //实例化一个数据上下文对象 HotelDBContext dbcontext = new HotelDBContext(); //创建数据库如果不存在的话 if (dbcontext.Database.CreateIfNotExists()) { Console.WriteLine("数据库已创建成功!"); Console.Read(); } else { Console.WriteLine ("数据库已经存在,无需创建!"); } } }</span>
三.运行代码,生成数据库
小结一下:CodeFirst相比较而言是一种比较简洁的数据模型生成模式,它很好地支持了以代码为中心的设计理念,代码优先的开发使得开发流程更加的优美,这样你的项目中可以说就不会再需要.edmx那种系统自动生成的DataModel了。
标签:entity framework 框架 codefirst
原文地址:http://blog.csdn.net/lianjiangwei/article/details/43457273