Ich versuche, einen effektiven Weg zu finden, um berechnete Felder eines Entity Framework-Modells in Winforms databind. Ich verwende Visual Studio 2008 und .NET Framework 3.5. Ein Beispiel wäre für EntityX, sagen wir, ich habe columnA und columnB, und ich möchte eine berechnete Eigenschaft namens sumAB. Die Art und Weise, wie ich dies getan habe, war mit partiellen Klassen:
public partial class EntityX
{
public int sumAB
{
get
{
return this.columnA + this.columnB;
}
}
}
Dann verwende ich Visual Studio, um EntityX als Datenquelle hinzuzufügen, damit ich die automatische Datenbindung per Drag & Drop nutzen kann. Das Problem, das ich habe ist, dass die berechneten Eigenschaften nicht unter den Datenquellenfeldern angezeigt werden. Ich bin auf der Suche nach einer Möglichkeit, die automatische Datenbindung von berechneten Feldern zu haben.
Ich weiß, ich könnte dies manuell tun, aber dann müsste ich auch manuell alle der Bindung Code schreiben, um das Feld zu aktualisieren, wenn SpalteA oder SpalteB geändert werden. Ich habe auch keinen Zugriff auf dieses Feld auf der SQL-Server-Seite berechnet entweder zu machen.
Kennt jemand eine Möglichkeit, dies zu erreichen, oder eine andere ähnliche Richtung, die man einschlagen könnte?
Danke!
UPDATE
Ich habe dies auf einem anderen Rechner mit Visual Studio 2010 und .NET 4 getestet und erhalte immer noch das gleiche Verhalten. Interessanterweise kann ich manuell ein Textfeld erstellen und eine Datenbindung hinzufügen, und es wird gut funktionieren, wie unten:
sumABTextBox.DataBindings.Add(
new System.Windows.Forms.Binding("Text", EntityXBindingSource, "sumAB", true));
Es funktionierte auch, wenn ich die Eigenschaft in der .edmx-Datei platzierte, aber das ist nicht wünschenswert, da sie jedes Mal gelöscht wird, wenn die Datenbank aktualisiert wird.
Haben Sie eine andere Idee?
UPDATE 2
Immer noch keine Lösung... Ich musste in meinem Code Alternativen verwenden, um die Fristen einzuhalten. Ich bin immer noch sehr daran interessiert, wenn jemand eine Antwort findet...