实体框架6在引用的类上添加数据注释

时间:2016-09-13 13:31:13

标签: c# entity-framework data-annotations

只是想知道是否可以将数据注释添加到从没有EntityFramework引用的类库引用的类中。

例如Project.Data.Entities

public class User {
    public long Id { get; set; }
    public string UserName { get; set; }
}

Project.Data.Repositories.EntityFramework引用Project.Data.Entities库。如何添加关于键属性,列名,表名等的数据注释?

1 个答案:

答案 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