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

  • Matt Stokes

    Matt Stokes

    22 Ocak 2008
  • Matthew Pearce

    Matthew Pear

    9 AĞUSTOS 2009
  • xdadevelopers

    xdadeveloper

    25 Aralık 2009