Entity Framework 7 Kodunda Bire Bir veya ZeroOrOne-to ilişkileri nasıl yapılandırılır Önce Veri Açıklamaları veya Akıcı Api?Entity Framework 7'de Bire bir ilişkiler İlk Kod
cevap
Sen
class MyContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<BlogImage> BlogImages { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>()
.HasOne(p => p.BlogImage)
.WithOne(i => i.Blog)
.HasForeignKey<BlogImage>(b => b.BlogForeignKey);
}
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public BlogImage BlogImage { get; set; }
}
public class BlogImage
{
public int BlogImageId { get; set; }
public byte[] Image { get; set; }
public string Caption { get; set; }
public int BlogForeignKey { get; set; }
public Blog Blog { get; set; }
}
Ve açık olmayan bir şey BlogImage'ın birebir veya birebir bir ilişkiye sahip olmak yerine Blog'la birebir bir ilişkiye sahip olmanız (ya da isteğe bağlı olarak kendi başına bir BlogImage) istiyorsanız bir blog atıfta bulunmaz, sadece BlogImage.BlogForeignKey null yapmak zorundasınız, bu gibi: public int? BlogForeignKey {get; set;} –
Bu özellik gerçekten gerekli mi? 'public int BlogForeignKey {get; set;}' –
yukarıdaki cevabı kesinlikle doğru aşağıdaki gibi Entity Framework 7'de Akıcı API kullanarak OneToOne ilişkiyi tanımlayabilirsiniz.
Sadece okuyucular bilgi için: Bu her iki tarafta bir referans navigasyon özelliği vardır official documentationBire bir
Bire bir ilişkilerde güzel izah edilmiştir. Aynı sözleşmeleri bire-çok ilişkiler olarak izlerler, ancak her bir prensip ile ilgili sadece bir bağımlı olduğundan emin olmak için yabancı anahtar özelliği üzerinde benzersiz bir endeks tanıtılır. varlıklar birini seçecek
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public BlogImage BlogImage { get; set; }
}
public class BlogImage
{
public int BlogImageId { get; set; }
public byte[] Image { get; set; }
public string Caption { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
Not
EF yabancı anahtar özelliği tespit edebilme kabiliyeti dayalı bağımlı olmak. Yanlış varlık bağımlı olarak seçilirse, bunu düzeltmek için Fluent API'yi kullanabilirsiniz.
Do Bu özelliği gerçekten tanımlamam gerekiyor? 'Public int BlogId {get; set;}' –
@MohammedNoureldin Mülkiyet public int BlogId {get; set;} 'gereklidir çünkü' 'EF varlıklardan birini seçecektir Yabancı bir anahtar özelliği tespit etme yeteneğine bağlı olarak bağımlı olmak. "' Bire bir bölümdeki https://docs.microsoft.com/en-us/ef/core/modeling/relationships'deki nota bakın. İlişkisel Desenlerin İncelenmesi. –
- 1. Entity Framework Kod Dağıtımı İlk
- 2. Entity Framework Çekirdek Kod-İlk: Çoktan-çok ilişkide Cascade sil
- 3. Varlık çerçevesi Kod İlk Bire Bir ilişki
- 4. Entity Framework 6 Kod İlk - Gerekli Enum veri türü çalışmıyor
- 5. Kod İlk Entity Framework ile ProviderIncompatibleException - MVC 4
- 6. Entity Framework 4.3.1 Kod İlk: veritabanı oluşturuldu ancak tablolar
- 7. Varlık Framework - Kod İlk -
- 8. Entity Framework
- 9. Entity Framework İlk Verilerin Eklenmesi Yeniden Oluşturma
- 10. Varlık Framework Kod İlk olan İlişki
- 11. Entity Framework (EF) Kod İlk Basamakla Tek Sıfırla veya Bir ilişkiyi silme
- 12. Entity Framework - DB-First - Kompozit Yabancı Anahtarlar
- 13. Entity Framework -
- 14. Entity Framework
- 15. Entity Framework
- 16. Entity Framework
- 17. Entity Framework başlangıç zamanı
- 18. Entity Framework ve SQL Server ile kod ilk geçişi kullanıldığında kümelenmiş bir dizin oluşturma
- 19. Entity Framework Çekirdek
- 20. Varlık Framework Kod İlk Tembel Yükleme
- 21. LINQ ve Entity Framework
- 22. Kod İlk Bırakma-Oluşturma modunda Entity Framework'ü nasıl kullanırım?
- 23. Varlık Framework ben Entity Framework 6.1.1 kullanıyorum
- 24. EF Kod İlk: Bir yabancı anahtar ilişkisi Add-Entity projeksiyon
- 25. Kod İlk ve Veri Tabanı İlk
- 26. Entity Framework 5'teki LoadProperty
- 27. kodu ilk bire-bir kaskat silme etkinleştirme
- 28. Entity Framework Bölme Tablosu Sil
- 29. ADO.NET Entity Framework eğiticileri
- 30. İşlem Olmadan Entity Framework?
Bunu okuyun [makale] (http://www.entityframeworktutorial.net/code-first/configure-one-to-one-relationship-in-code-first.aspx) –