只是想知道是否可以将数据注释添加到从没有EntityFramework引用的类库引用的类中。
例如Project.Data.Entities
库
public class User {
public long Id { get; set; }
public string UserName { get; set; }
}
Project.Data.Repositories.EntityFramework
引用Project.Data.Entities
库。如何添加关于键属性,列名,表名等的数据注释?
答案 0 :(得分:2)
为此目的提供了流利的API。
修改强>
关于您的映射,您必须覆盖OnModelCreating
public class TestContext : DbContext
{
public DbSet<User> Users { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>()
.ToTable("user")
.HasKey(_ => _.Id);
modelBuilder.Entity<User>()
.Property(_ => _.Id).HasColumnName("id");
modelBuilder.Entity<User>()
.Property(_ => _.UserName).HasColumnName("username"); // Add also HasMaxLength here
}
}
(如果您的数据库已经存在并且您的模型上没有由EF创建,则还需要禁用迁移)
编辑
如果您安装带有CI代码页的SQL Server,则列名称大小并不重要。所以你只需要指定HasMaxLength