【问题标题】:Ensure unique values in Entity Framework 7确保 Entity Framework 7 中的唯一值
【发布时间】:2016-07-19 22:02:00
【问题描述】:

我正在使用实体框架 7(测试版)。我想限制字段中的值,因此不能添加重复项。 EF6 有一个索引标记,可以像这样使用:

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

遗憾的是,EF7 中不存在此属性 - 如何让 EF7 检查唯一性?

【问题讨论】:

  • 暂时:我猜是手动添加索引。顺便说一句,这不会让 EF 检查唯一性。

标签: entity-framework-core


【解决方案1】:

数据注释在 beta8 中不可用,请参阅roadmap

您可以在 onModelCreating 中设置检查 如果您想知道支持什么,请在您的 project.json 中添加此参考

    "EntityFramework.SqlServer.Design": "7.0.0-beta8",

并在命令提示符下使用脚手架

 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);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 2016-06-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 2012-08-02
    • 2020-08-05
    相关资源
    最近更新 更多