I özellikleri olarak iki nesne (User
, PrimaryNode
) ile bir nesne olması, hem de potansiyel olarak boş olabilir, aşağıya bakınız:Varlık Çerçeve ObjectQuery.Include()
public class Item
{
[Key]
public int ItemId { get; set; }
public string ItemName { get; set; }
public Node PrimaryNode { get; set; }
public User User { get; set; }
}
I doldurmak için varlık Framework 6 kullanıyorum Item
nesnesi ve zincirleme kullanılarak, içindeki PrimaryNode
ve User
nesnelerini doldurması gerekir. Yukarıdaki örnekte i.User
sonra item
değişken boş null ise
using (var db = new MyContext())
{
var item = db.Items.Include(i => i.User).Include(n => n.PrimaryNode).FirstOrDefault(i => i.ItemId == id);
}
:
zincirli ilk önce boş bir nesne, örneğin boş olarak bütün nesne döner sahiptir dahil
. Hem alt nesneleri hem de bir alt nesne boşsa, üst nesne ve diğer alt nesne hala doldurulacak şekilde doldurmanın en iyi yolu nedir?
"PrimaryNode" ve "User" öğesini sanal yapın ve bunları 'Item' seçeneğine isteğe bağlı olarak eşleyin. –
@octavioccl tarafından yapılan ifadeye katılıyorum - sorgunuzda yanlış bir şey yok. Testlerimde, bu sorgu, Öğeye bağlı bir Kullanıcı nesnesi olmasa bile, Düğüm nesnesini doldurur. –
Şimdi onaylayabilirim, yukarıdaki yaklaşımda yanlış bir şey yok, karmaşık bir sınıfın ne olduğunu basitleştirdim. Benim durumumda, bir User nesnesine sahip olmanın yanı sıra, bir UserId özelliği de vardı (bazı çevrelerde önerdiğim gibi - kullanıcı nesnesini yüklemek zorunda kalmadan kimliği alabilirsiniz) - aslında Soruna neden olan bu özellik, ayarlandığı şekilde sorgunun, Kullanıcı tablosuna bir iç birleştirme olmasıyla sonuçlandı. Özür dilerim ve cevaplar için teşekkürler. –