Entity Framework 6 在引用的 class 上添加数据注释
Entity Framework 6 Add Data Annotations on referenced class
只是想知道是否可以将数据注释添加到 class 引用的 class 库中,该库没有引用 EntityFramework。
例如Project.Data.Entities
图书馆
public class User {
public long Id { get; set; }
public string UserName { get; set; }
}
Project.Data.Repositories.EntityFramework
引用 Project.Data.Entities
库。如何添加有关键属性、列名称、Table 名称等的数据注释?
有用于此目的的流畅 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 服务器,列名大小写并不重要。所以你只需要指定 HasMaxLength
只是想知道是否可以将数据注释添加到 class 引用的 class 库中,该库没有引用 EntityFramework。
例如Project.Data.Entities
图书馆
public class User {
public long Id { get; set; }
public string UserName { get; set; }
}
Project.Data.Repositories.EntityFramework
引用 Project.Data.Entities
库。如何添加有关键属性、列名称、Table 名称等的数据注释?
有用于此目的的流畅 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 服务器,列名大小写并不重要。所以你只需要指定 HasMaxLength