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

  • ELPRESADOR

    ELPRESADOR

    21 HAZİRAN 2008
  • modica89

    modica89

    24 HAZİRAN 2007
  • Roger Huffman

    Roger Huffma

    4 ŞUBAT 2007