EF--CodeFirst
1,增加EntityFramework的引用
2,创建实体类
public class Invoice { public Invoice() { LineItems = new List<LineItem>(); } public int ID { get; set; } public DateTime InvoiceDate { get; set; } public double Total { get; set; } public virtual ICollection<LineItem> LineItems { get; set; } //virtual表示演示加载 } public class LineItem { public int ID { get; set; } public string ProductName { get; set; } public double ItemCost { get; set; } public double Units { get; set; } public Invoice Invoice { get; set; } }
3,从DBContext中继承下来
///// <summary> ///// EF策略 ///// </summary> //public Accounting() // : base("Accounting") //{ // //CreateDatabaseIfNotExists这是默认的策略。如果数据库不存在,那么就创建数据库。但是如果数据库存在了,而且实体发生了变化,就会出现异常。 // Database.SetInitializer<Accounting>(new CreateDatabaseIfNotExists<Accounting>()); // //DropCreateDatabaseIfModelChanges:此策略表明,如果模型变化了,数据库就会被重新创建,原来的数据库被删除掉了。 // // DropCreateDatabaseAlways:此策略表示,每次运行程序都会重新创建数据库,这在开发和调试的时候非常有用。 //} public DbSet<Invoice> Invoices { get; set; } public DbSet<LineItem> LineItems { get; set; }
4,配置链接字符串
<connectionStrings> <add name="Accounting" connectionString="Server=.;DataBase=Accounting;uid=sa;pwd=123;" providerName="System.Data.SqlClient" /> </connectionStrings>
5,运行主程序代码
using (var db = new Accounting()) { //向数据库添加记录 var Inv = new Invoice() { ID = 1, InvoiceDate =DateTime.Now, Total=1 }; db.Invoices.Add(Inv); //保存记录,返回受影响的行数 int recordsAffected = db.SaveChanges(); Console.WriteLine("追加{0}记录成功", recordsAffected); }
6,查看数据库中的表结构已经出来了
详细介绍:Entity Framework 5.0 Code First全面学习
http://blog.csdn.net/gentle_wolf/article/details/14004345#t2