だから私はNVLの束が必要なクエリを実行する必要がありますが、linqでこれらを実行する必要があります(dbバックエンドがBD2であり、サブソニックを使用している場合)Webで「NVL linq」を検索しましたが、しませんでした本当に役立つものを見つけたので、ここで質問しています。
ご協力いただきありがとうございます...
null合体演算子を使用できます??
:
var abs = from row in table
select new {a = row.a ?? "default", b = row.b};
演算子は左側の値を確認し、nullの場合は、右側の値を使用します。したがって、この例では、row.a
がnullの場合、はにa
なり"default"
ます。
これは、が文字列であることを前提としてrow.a
います。
どうやってこれをやったのか知りたい人がいれば、私はnull合体演算子を使用しませんでした...それよりもさらに簡単でした。たぶん私は自分自身を明確に説明していませんでしたが、値がnullの場合はその結果を含めたいということを言う必要がありました。見てみな。
possibleVendors = (from vndMapping in db.COMPANIES_VND_MAPPINGS
join v in db.COMPANIES_CMP_COMPANIES on vndMapping.VENDOR_ID equals v.COMPANY_ID
where
!(from ex in db.COMPANIES_VND_MAPPINGS
where (ex.OEM_ID == oemId || ex.OEM_ID == null)
&& (ex.MODEL_ID == modelId || ex.MODEL_ID == null)
&& (ex.MODALITY_ID == modalityId || ex.MODALITY_ID == null)
&& (ex.CLASS_ID == productTypeId || ex.CLASS_ID == null)
&& ex.EXCLUDE.ToUpper().Equals("Y")
select ex.VENDOR_ID).Contains(vndMapping.VENDOR_ID)
&& (vndMapping.OEM_ID == oemId || vndMapping.OEM_ID == null)
&& (vndMapping.MODEL_ID == modelId || vndMapping.MODEL_ID == null)
&& (vndMapping.MODALITY_ID == modalityId || vndMapping.MODALITY_ID == null)
&& (vndMapping.CLASS_ID == productTypeId || vndMapping.CLASS_ID == null)
select new
{
vndMapping.VENDOR_ID,
v.COMPANY_NAME
}).Distinct().OrderBy(x => x.VENDOR_ID).ToDictionary(x => x.VENDOR_ID, x => x.COMPANY_NAME);
ここで覚えておいてください - ビジネスロジック (明らかに) またはデータベースを設計しなかったという点で、いくつかの制限がありました - あなたがすべてを完全に制御できる場合、他の誰かがこれを行うためのより良い方法を持っているかもしれませんが、これはうまくいくようです.