EF code First 创建数据库

 

DbContext时EF4.!中的技术

ADO.NET DbContext Generator 分离生成纯POCO模型和轻型DbContext。DbContext较之ObjectContext比较简洁,并且POCO可以充分利用。

Code First 手动创建POCO模型,数据层DbContext及映射关系,通过Database.SetInitializer生成数据库,这种方式较灵活,但是代码工作较多。

 

  1. 在Model中Code-First中。

public class BookDbContext:DbContext

 

    {

       

}

2现在Models设计好表的结构。在数据库中创建2张表Boos表和Users表

 public class Book
    {
        public int BookID { get; set; }
        public string BookName { get; set; }
        public string Author { get; set; }
        public string Publisher { get; set; }
        public decimal Price { get; set; }
        public string Remark { get; set; }
    }
  public class User
    {   
        public int UserId { get; set; }
        public string UserName { get; set; }
        public string PassWord { get; set; }
        public string Email { get; set; }
    }
 public class BookDbContext:DbContext
    {
        public DbSet<Book> Books { get; set; }
        public DbSet<User> Users { get; set; }
    }

在web.config中设置数据的名字。

生成解决方案后

在数据库写些数据查询:UserController

 BookDbContext db = new BookDbContext();
        public ActionResult Index()
        {
            var users = from b in db.Users
                       
                        select b;
            return View(users);
        }

 

 

. 实体状态和保存
   EntityState:Added、Unchanged、Modified、Deleted和Detached
   1) 插入一个新的实体到上下文
      当调用SaveChanges()才能插入到数据库中。
    var unicorn = new Unicorn { Name = "Franky", PrincessId = 1};
    context.Unicorns.Add(unicorn);//添加到上下文中
    context.SaveChanges();//插入到数据库中

     另一种插入方法:
     var unicorn = new Unicorn { Name = "Franky", PrincessId = 1};
     context.Entry(unicorn).State = EntityState.Added;
     context.SaveChanges();

     在当前实体的关联实体中添加新的对象:
     // Add a new princess by setting a reference from a tracked unicorn
      var unicorn = context.Unicorns.Find(1);
      unicorn.Princess = new Princess { Name = "Belle" };

      // Add a new unicorn by adding to the collection of a tracked princess
      var princess = context.Princesses.Find(2);
      princess.Unicorns.Add(new Unicorn { Name = "Franky" });

      context.SaveChanges();

8.  DbContext中的T-SQL查询
     1) SQL语句查询实体
      var unicorns = context.Unicorns.SqlQuery(
                   "select * from Unicorns").ToList();
     2) SQL语句查询非实体类型
      var unicornNames = context.Database.SqlQuery<string>(
                       "select Name from Unicorns").ToList();
     3) 执行SQL命令
       context.Database.ExecuteSqlCommand(
        "update Unicorns set Name = 'Franky' where Name = 'Beepy'"); 

 

posted @ 2013-09-18 15:56  天羽星河落  阅读(182)  评论(0)    收藏  举报