确保Entity Framework 7中的唯一值

时间:2015-10-22 11:58:33

标签: entity-framework-core

我正在使用Entity Framework 7(测试版)。我想约束字段中的值,因此不能添加重复项。 使用EF6时,可以使用索引标记,如:

public class MyEntityClass
{ 
    [Index(IsUnique = true)]
    [MaxLength(10)]
    public string MyUniqueProperty{ get; set; } 
}

遗憾的是,EF7中没有此属性 - 如何让EF7检查其唯一性?

1 个答案:

答案 0 :(得分:1)

beta8中未提供数据注释,请参阅roadmap

您可以在onModelCreating中设置支票 如果您想知道支持什么,请在project.json

中添加此引用
    "EntityFramework.SqlServer.Design": "7.0.0-beta8",

在命令提示符下使用scaffold

 dnx ef dbcontext scaffold "connectionstring" EntityFramework.SqlServer

生成代码的示例

    protected override void OnModelCreating(ModelBuilder builder)
    {
        modelBuilder.Entity<LocalizationsOrg>(entity =>
        {
            entity.Property(e => e.Filename).HasDefaultValue("");

            entity.Property(e => e.LocaleId).HasDefaultValue("");

            entity.Property(e => e.ResourceSet).HasDefaultValue("");

            entity.Property(e => e.Type).HasDefaultValue("");

            entity.Property(e => e.Updated).HasDefaultValueSql("getutcdate()");

            entity.Property(e => e.Value).HasDefaultValue("");

            entity.Property(e => e.ValueType).HasDefaultValue(0);
        });

        // Customize the ASP.NET Identity model and override the defaults if needed.
        // For example, you can rename the ASP.NET Identity table names and more.
        // Add your customizations after calling base.OnModelCreating(builder);
    }