私はEFコードを最初に使用しています。4.2、 where句を動的に構築する必要があるときに、どのような解決策を提案しますか? はまだ機能が非常に必要とされるであろう含める:ダイナミックwhere節を構築する、Linq to SQL
var results = db.Set<dynamicType>.Where("dynamic conditions").Include("....");
上記動的条件がレコードをフィルタリングするために、別のテーブルにルックアップする必要があります。 私はLINQの式でそれを書きたい場合、それはのようになります。
var result = db.Set<Contact>().Where(c=>c.AccountId == _Id_param || db.Set<LinkTable>().Any(a=>a.FkFieldId == c.AccountId && a.ParentId == _Id_param)).Include("Quotes");
基本的には、異なるタイプのWhere欄が変更されているため(Contactは唯一の例です)、FKフィールドは「AccountId」となる可能性があります。 「AccountFKId」にする。したがって、Where句は動的でなければなりません!あなたは常に、少なくともあなたはSet<>
呼び出しにして開始する予定されているどのような種類を知っている必要がありますので
var query = db.Set<Contact>().Include(...);
if (something)
{
query = query.Where(...);
}
// Other wheres
LINQのは強く型付けされています。あなたはその場でクエリを構築することができるように
ご回答いただきありがとうございますが、どうすればこのクエリを動的linqに書き込むことができますか?私はこれをまとめるにはDynamic linqについて十分に知りません。特にwhere節の別のテーブルから検索する必要のある部分。 – sam360