Code First 创建数据库
最近在对以前学的知识做一个总结,EF 这块,Code First 是很重要的一部分,方便快捷创建模型。
Code First有两种配置方式:
DataAnnatation:
1 [Table("MyFirstTable")] 2 public class Order 3 { 4 5 [Key] 6 [Required] 7 public string OrderID { get; set; } 8 public string CreateUserID { get; set; } 9 public OrderDetail OrderDetail { get; set; } 10 }
Flunt Api:
1 class BaseDBContext : DbContext 2 { 3 protected override void OnModelCreating(DbModelBuilder modelBuilder) 4 { 5 base.OnModelCreating(modelBuilder); 6 modelBuilder.Entity<Order>().ToTable("MyFirstTable"); //The same to the meaning 7 } 8 }
下面贴出DataAnnatation的实例。
1、新建MVC4项目,选择对应模板
2、创建实体模型,这里以订单和订单详情表为例。
1 public class Order 2 { 3 [Key] 4 [Required] 5 public string OrderID { get; set; } 6 public string CreateUserID { get; set; } 7 public string OrderDetailID { get; set; } 8 9 [ForeignKey("OrderDetailID")] 10 public OrderDetail OrderDetail { get; set; } 11 } 12 13 public class OrderDetail 14 { 15 public string OrderDetailID { get; set; } 16 public string OrderID { get; set; } 17 public int Amount { get; set; } 18 [DataType(DataType.Currency)] 19 public decimal CountPrice { get; set; } 20 }
3、创建实体上下文
1 public class TestDbContext : DbContext 2 { 3 public TestDbContext() : base("Default") { } 4 5 public DbSet<Order> Orders { get; set; } 6 7 public DbSet<OrderDetail> OrderDetails { get; set; } 8 9 }
4、配置连接字符串
<connectionStrings> <add name="Default" connectionString="Data Source=.;Database=TestDB;Integrated Security=true;" providerName="System.Data.SqlClient"/> </connectionStrings>
5、创建一个HomeController控制器
1 public class HomeController : Controller 2 { 3 // 4 // GET: /Home/ 5 6 public ActionResult Index() 7 { 8 var db = new TestDbContext(); 9 db.OrderDetails.ToList(); 10 return View(); 11 } 12 13 }
6、最后执行Index方法,去数据库看看效果如何。