我正在使用Entity Framework 7(测试版)。我想约束字段中的值,因此不能添加重复项。 使用EF6时,可以使用索引标记,如:
public class MyEntityClass
{
[Index(IsUnique = true)]
[MaxLength(10)]
public string MyUniqueProperty{ get; set; }
}
遗憾的是,EF7中没有此属性 - 如何让EF7检查其唯一性?
答案 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);
}