Wie kann ich einem LINQ-Datenkontext mitteilen, bestimmte Eigenschaften oder alle schreibgeschützten Eigenschaften zu ignorieren, wenn eine Ergebnismenge an ein Objekt gebunden wird?Ignorieren Sie schreibgeschützte Klasseneigenschaften, wenn Sie DataContext.ExecuteQuery verwenden <T>
Ich arbeite mit einigen T-SQL-Anweisungen, die mit LINQ schwierig zu äußern sind, daher verwende ich die ExecuteQuery-Methode des Datenkontext, um das direkte T-SQL an die Datenbank zu übergeben.
Wenn meine Klasse T über schreibgeschützte Eigenschaften verfügt, erhalte ich zur Laufzeit Ausnahmen, wenn der Datenkontext versucht, diese Eigenschaften festzulegen, und schlägt fehl, da keine Setter-Eigenschaft vorhanden ist. Wie erkläre ich dem Kontext, diese Eigenschaften zu ignorieren?
Das mache ich jetzt. Es funktioniert, aber es saugt:
public bool IsPaidInFull {
get { return NetTotal <= 0m; }
set { /* needed so linq doesn't choke. Should never be set by hand */ }
}
Darf ich der Erste sein, der vorschlägt - "do_do_ that"? –
Tue nicht was genau? Die Problemumgehung ist eine Sünde und ist inakzeptabel, daher mein Beitrag hier. Wenn Sie meinen, "finden Sie keine Möglichkeit, bestimmte Eigenschaften zu überspringen, wenn Sie an die Ergebnismenge binden", können Sie das bitte erklären? –