J'essaie de trouver un moyen efficace de calculer les champs calculés d'un modèle Entity Framework dans Winforms. J'utilise Visual Studio 2008 et .NET framework 3.5. Un exemple serait pour EntityX, disons que j'ai columnA et columnB, et je veux une propriété calculée nommée sumAB. La façon dont je l'ai fait cela a été avec des classes partielles:Liaison de données de propriétés calculées dans Entity Framework
public partial class EntityX
{
public int sumAB
{
get
{
return this.columnA + this.columnB;
}
}
}
Je suis puis en utilisant Visual Studio pour ajouter EntityX en tant que source de données, donc je peux utiliser le glisser-déposer automatique de liaison de données. Le problème que j'ai est que les propriétés calculées n'apparaissent pas sous les champs de source de données. Je cherche un moyen d'avoir la liaison de données automatique des champs calculés.
Je sais que je pourrais le faire manuellement, mais je devrais également écrire manuellement tout le code de liaison pour actualiser le champ lorsque columnA ou columnB sont modifiés. Je n'ai pas non plus accès à ce champ calculé sur le serveur SQL.
Est-ce que quelqu'un connaît des façons d'accomplir ceci ou d'autres directions similaires à poursuivre?
Merci!
MISE À JOUR
J'ai testé cela sur une autre machine, en utilisant Visual Studio 2010 et .NET 4, et je reçois toujours le même comportement. Il est intéressant, je peux créer manuellement une zone de texte et ajouter une liaison de données, et il fonctionne très bien, comme ci-dessous:
sumABTextBox.DataBindings.Add(
new System.Windows.Forms.Binding("Text", EntityXBindingSource, "sumAB", true));
Il a également travaillé si je plaçais la propriété dans le fichier .edmx, mais ce n'est pas souhaitable, comme il sera effacé chaque fois que la base de données sera mise à jour.
D'autres idées?
MISE À JOUR 2
Toujours pas de solution ... Je devais utiliser des solutions de rechange dans mon code pour respecter les délais. Je suis toujours très intéressé par cela si quelqu'un trouve une réponse ...
Je ne vois pas pourquoi ce que vous faites ne fonctionnerait pas. C'est juste une propriété, alors comment le code qui génère la source de données la perçoit comme différente est au-delà de moi. Pouvez-vous explorer le fichier xml de la source de données dans votre solution et voir si les liaisons de propriétés existent? –
J'ai regardé. Je ne suis pas familier avec la structure de ces fichiers, mais j'ai remarqué qu'il a le fichier généré automatiquement répertorié, mais il n'a pas mon fichier répertorié comme l'un des fichiers CSV dans la balise TypeInfo. J'ai essayé d'ajouter mon fichier, sauvegarder, recompiler, mais pas de chance ... – bunglestink