2015-10-22 5 views
2

Я использую Entity Framework 7 (бета). Я хочу ограничить значения в поле, поэтому дубликат не может быть добавлен. С EF6 был в разметке индекса, который может быть использован как:Обеспечение уникальных значений в Entity Framework 7

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

К сожалению, этот атрибут не присутствует в EF7 - как я могу получить EF7 проверить на уникальность?

+0

На данный момент: добавьте индекс вручную, я думаю. Кстати, это не делает проверку EF уникальностью. –

ответ

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); 
    } 
Смежные вопросы