那时学EF的时候还没有Code First,只有DB First,生成的是一个EDMX文件,Code First则没有这文件,下面直接上代码吧
数据库创建以及建表
1、首先我们新建一个新项目,使用Nuget搜索EntityFramework,如果想找到对应的中文包,可以搜索EntityFramework.zh-Hans即可。
本人是话是直接搜索EntityFramework.zh-Hans,这样会自动把中文包和类库一起安装,比较方便。
2、接着建model实体
1 public class Product 2 { 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 DbSet<Product> Product { 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文件中添加数据库连接字符串
1 <connectionStrings> 2 <add name="DBConnectionString" connectionString="Data Source=.;Initial Catalog=BasicOpt;Integrated Security=true" providerName="System.Data.SqlClient" /> 3 </connectionStrings>
5、接着创建实体映射
1 public class ProductMap : EntityTypeConfiguration<Product> 2 { 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<Product>().Add(product); 4 db.SaveChanges();
我们打开数据库管理工具看下是否有创建数据库以及新增数据
这样几步操作就完成了一个基本的例子,往后文章将介绍下一对一、一对多、多对多关系代码如何编写,以及数据库迁移操作。
时间: 2024-11-05 23:23:04