汎用リポジトリがあり、DoQuery メソッドを使用してデータベースからオブジェクトを選択する場合、外部キーであるフィールドの代わりに null を取得しないように、関連するエンティティの一部をロードする必要があります。
問題は、リポジトリが汎用的であるため、ロードする必要があるプロパティの数やその名前がわからないことです (それらを取得する方法がない限り)。まだこのリポジトリを一般的なままにしていますか?
DoQuery メソッドは次のとおりです。
public ObjectQuery<E> DoQuery(ISpecification<E> where)
{
ObjectQuery<E> query = (ObjectQuery<E>)_ctx.CreateQuery<E>("[" + typeof(E).Name + "]").Where(where.EvalPredicate);
return query;
}
私は以前にこれを投稿しましたが、それに対する答えは得られませんでしたが、人々が私がプロパティ名を知っていてできると想定する前から、これはもう少し関連性があると思います:
.Include("PropertyNameIKnowNeedsToBeLoaded")
これは、私が以前に投稿した質問です。うまくいけば、これで私がどこにいるのかについて少し情報が得られます。
どんな助けでも大歓迎です。
ありがとう、
マット