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