テーブルの構造が複雑で、追加の作業が必要なため、EF のエンティティで部分クラスを使用しています。
属性 Name と LastName を持つ Person というエンティティがあるとします。エンティティをクエリすると、名前と姓を持つ人物のコレクションが返されます。クラス person の部分クラスを使用して作成したプロパティ FullName も必要です。すべてのデータがオブジェクトにあるため、簡単に取得できます。
public partial class Person
{
public string FullName { get { return Name + " " LastName } }
}
ここで事態は複雑になります..... Person に接続された別のエンティティ (車) もあるとします。
車の名前も fullName の一部になるように要求を変更します。
public partial class Person
{
public string FullName { get { return Name + " " LastName + " - " + Car.Name } }
}
私の問題は次のとおりです: EF Context は使用後に既に破棄されているため、データベース内ではなくオブジェクト内にクエリを実行して格納している間に実行時に実行したいと考えています。カスタムToString
メソッドのようなもの。
GUIの目的でこれが必要です。もちろん、これは単純化されたバージョンであり、GUI とクエリのフォーマット文字列ははるかに簡単ですが、オプションではありません。
自動的に返す方法を見つけるか、少なくともメソッドを自動的に実行する必要があります。
メソッドを呼び出すことができる場所から、コンストラクターをオーバーライドするか、おそらくオーバーロードすることで、これを実現できました。クエリ結果のすべてのオブジェクトを調べてループからメソッドを呼び出したり、ゲッターに存在しない場合はコンテキストを作成したりしないことを本当に望んでいます。
繰り返しますが、これは問題の簡略版です