EF之CodeFirst

1.0首先我们建一个控制台项目,进行测试。并添加EntityFramework的引用。(这一步骤中我是新建了ef数据源,之后又把他删掉了,这样他自己添加了应用,并在app.config中生成了他自己的配置节点。否则,你要自己添加相应的节点

2.0添加两个类,一个Userinfo,一个Order

 1 namespace demo

 2 {

 3  public    class Userinfo

 4     {

 5      [Key]

 6      public int UserId { get; set; }

 7      [StringLength(20)]

 8      public string Pwd { get; set; }

 9      public virtual ICollection<Order> Orderinfo { get; set; }

10     }

11 }

12 

13 namespace demo

14 {

15     public class Order

16     {

17         [Key]

18         public int OrderId { get; set; }

19         public DateTime CreateTime { get; set; }

20         public virtual Userinfo Userinfo {get;set;}

21     }

22 

23 }
View Code

他们对应数据库表中的字段长度,主键等要求是就是对应其上面的特性标签。在这个命名空间下System.ComponentModel.DataAnnotations;

3.0在app.config添加链接字符串,注意providerName 

 <add name ="dealConn" connectionString="server=.;uid=******;pwd=*****;database=TestDeal;" providerName ="System.Data.SqlClient"/>
View Code

4.0建EF上下文类:DealDbContext ,继承自DbContext,父类构造函数中传入的参数dealConn就是你的链接字符串的名字

namespace demo

{

    public class DealDbContext : DbContext

    {

        public DealDbContext()

            : base("name=dealConn")

        {

        }



        protected override void OnModelCreating(DbModelBuilder modelBuilder)

        {

            //生成表的时候不要加复数

            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

        }

        public DbSet<Order> Order { get; set; }

        public DbSet<Userinfo> Userinfo { get; set; }

    }

}
View Code

5.0测试

 static void Main(string[] args)

        {

            DealDbContext context = new DealDbContext();

            Userinfo u = new Userinfo() {UserId = 1, Pwd = "test"};

            context.Database.CreateIfNotExists();

            context.Userinfo.Add(u);

            context.SaveChanges();

            Console.Write("ok了");

            Console.ReadKey();

        }
View Code

这时打开你的数据库,发现会新建立一个TestDeal的数据库,而且也会有对应的Userinfo和Order表。

 

你可能感兴趣的:(first)