Ich habe zwei Entitäten in meinem Projekt:Kann ich meine Navigationseigenschaft im Repository-Muster für Arbeitseinheiten aktualisieren?
public class A
{
public int Id { get; set; }
public DateTime CreatedDateTime { get; set; }
public virtual B B { get; set; }
}
public class B
{
public int Id { get; set; }
public Nullable<DateTime> LastAliveTime { get; set; }
public virtual ICollection<A> A { get; set; }
}
I UOW Repository-Muster mit Entity Framework verwende ich folgendes tun:
stirng id = "abc";
var aService = unitOfWork.GetRepository<A>();
var ins = aService.FindBy(a => a.Id == id);
Ich weiß, dass es in Ordnung ist zu aktualisieren Ins und speichern Sie die dbcontext.
Was muss ich wissen, ist:
ins.B.LastAliveTime = DateTime.UtcNow;
wird immer diese Arbeit?
Ist es der richtige Weg zum Aktualisieren der LastAliveTime von B-Entität oder sollte ich ein anderes Repository wie unten initialisieren?
var bService = unitOfWork.GetRepository<B>();
Warum überhaupt haben Sie Repository pro Entitätstyp? – Evk
Angenommen, 'virtual' bedeutet Lazy-loading, hängt von der Lebensdauer des zugrunde liegenden Kontextes ab. Wenn der Kontext noch aktiv ist, wenn Sie "ins.B" aufrufen, oder "ins.B" bereits geladen ist, wird es funktionieren. Andernfalls erhalten Sie 'InvalidOperationException' und versuchen,' B' zu laden, wenn der Kontext entsorgt wird. – Dennis