SORU
18 NİSAN 2011, PAZARTESİ


EF ile benzersiz anahtar kodu ilk

Projemde aşağıdaki modeli var

public class Category
{   
    public Guid ID { get; set; }
    [Required(ErrorMessage = "Title cannot be empty")]
    public string Title { get; set; }
}

ve benzersiz olarak Title anahtar yapmaya çalışıyorum, çözüm için Google'da arattım, ama bulamadım. Herhangi nasıl yapacağımı bana gösterir misiniz lütfen?

CEVAP
18 NİSAN 2011, PAZARTESİ


Ne yazık ki EF hiç benzersiz anahtarlar (umarım bir sonraki ana sürüm için planlanmıştır) desteklemiyor çünkü kod benzersiz anahtar ilk olarak tanımlayabilirsiniz. Ne yapabilirim intializer özel veritabanı oluşturmak ve SQL komutu çağırarak benzersiz dizini el ile eklemek için:

public class MyInitializer : CreateDatabaseIfNotExists<MyContext>
{
  protected override void Seed(MyContext context)
  {
    context.Database.ExecuteSqlCommand("CREATE UNIQUE INDEX IX_Category_Title ON Categories (Title)");
  }
}

Ve uygulama bootstrap bu başlatıcı ayarlamanız gerekir.

Database.SetInitializer<MyContext>(new MyInitializer());

Edit

Şimdi (EF 6.1 itibaren )kolayca sınırlar benzersiz olabilir

[Index("TitleIndex", IsUnique = true)]
 public string Title { get; set; }

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BDGcustoms

    BDGcustoms

    24 NİSAN 2011
  • eisleyhead

    eisleyhead

    11 Ocak 2006
  • Randall P Studios

    Randall P St

    27 AĞUSTOS 2009