在 Entity Framework 中可以这样配置:
modelBuilder.Entity<Category>().HasKey(c => c.CategoryId).HasColumnName("CategoryID");
但迁移到 Entity Framework Core 后就不支持这样的配置,只找到一个啰嗦的配置方法:
modelBuilder.Entity<Category>().HasKey(c => c.CategoryId);
modelBuilder.Entity<Category>().Property(c => c.CategoryId).HasColumnName("CategoryID");
EF Core 中有没有更简单的配置方法?
其实 KeyAttribute 定义在 System.ComponentModal 里面,
一是建议就直接加在属性特性上了,省得写代码,二是如果有自定义BaseEntity的话,在BaseEntity中定义了。
特性又不会影响其他类或者方法。不要为了洁癖一定要写FluentAPI。
modelBuilder.Entity<Category>().HasKey(c => c.CategoryId).HasName("CategoryID") 这样可以否?
HasName
设置的是主键(PRIMARY KEY)名称
ef core的两个方法一个返回keybuilder,一个返回propertybuilder,责任划分得很清晰,其实更值得推荐
– MeetMelody 6年前