Hier ist mein CodeNhibernate inkonsistent fetching Verhalten
if (des.X == null)
{
if (src.IsL)
{
des.X = new Y();
var l = lRepo.Find().Where(file => file.Id == src.drId).First();
((Y)des.X).L = l;
}
else
{
D d = dRepo.Get(src.DrugId);
if (d is N)
{
des.X = new Y();
((Y)des.X).D = d;
((Y)des.X).L = ((N)d).L;
}
else
if (d is IF)
{
des.X = new IeI();
des.X.D = d;
}
}
}
das Problem tritt auf, wenn ich if (d is N)
Beim ersten Mal fragen, wenn ich eine Anfrage erstellen senden und ich sende einen N Id, werten Es ist wahr, aber wenn ich dieselben Daten für das Update sende, wertet es es als falsch aus.
Ich bin ein wenig verwirrt und ich habe keine logische Erklärung dafür, also könnte mir jemand helfen, dieses Problem zu lösen.
Bei der Aktualisierung wird ein Proxy zurückgegeben, aber beim Erstellen wird eine normale Entität zurückgegeben.
Entgraten und nicht Lazy Load-Lösungen funktionieren in diesem Fall, aber ich denke nicht, dass sie effiziente Lösungen sind.
Jede Hilfe bitte.