那时学EF的时候还没有Code First,只有DB First,生成的是一个EDMX文件,Code First则没有这文件,下面直接上代码吧
数据库创建以及建表
1、首先我们新建一个新项目,使用Nuget搜索EntityFramework,如果想找到对应的中文包,可以搜索EntityFramework.zh-Hans即可。
本人是话是直接搜索EntityFramework.zh-Hans,这样会自动把中文包和类库一起安装,比较方便。
2、接着建model实体
1 public class Product2 {3 public int Id { get; set; }4 public string Name { get; set; }5 public string Description { get; set; }6 }
3、创建一个EntityContext并继承自DbContext
1 public class EntityContext : DbContext 2 { 3 public EntityContext() 4 : base("name=DBConnectionString") 5 { 6 7 } 8 9 public DbSetProduct { get; set; }10 11 protected override void OnModelCreating(DbModelBuilder modelBuilder)12 {13 //不使用modelBuilder.Configurations.AddFromAssembly方法则需要逐个添加,如果数量多的话比较麻烦14 //modelBuilder.Configurations.Add(new OneToMany.Map.ProductMap());15 //此方法可以将当前程序集下所有继承了ComplexTypeConfiguration、EntityTypeConfiguration类型的类添加到注册器16 modelBuilder.Configurations.AddFromAssembly(Assembly.GetExecutingAssembly());17 base.OnModelCreating(modelBuilder);18 }19 }
4、在web.config文件中添加数据库连接字符串
12 3
5、接着创建实体映射
1 public class ProductMap : EntityTypeConfiguration2 { 3 public ProductMap() 4 { 5 ToTable("Product"); //指定表明 6 HasKey(p => p.Id); //指定主键 7 //指定Name字段在数据库中列名为DBName、长度500、非空,其他的话可以自己试下 8 Property(p => p.Name).HasColumnName("DBName").HasMaxLength(500).IsRequired(); 9 }10 }
6、我们写一个新增实体的操作,让Code First生成数据库
1 EntityContext db = new EntityContext();2 var product = new Models.Product() { Name = "电磁炉", Description = "电器" };3 db.Set().Add(product);4 db.SaveChanges();
我们打开数据库管理工具看下是否有创建数据库以及新增数据
这样几步操作就完成了一个基本的例子,往后文章将介绍下一对一、一对多、多对多关系代码如何编写,以及数据库迁移操作。