我有以下代碼:呼叫與空參數失敗
public static ContactEventValue GetContactEventValue(ContactEventType contactEventType, string programCode, string brandCode)
{
AdvocacyEntities ent = AdvocacyEntities.GetReadOnlyInstance();
ContactEventValue value = ent.ContactEventValues.SingleOrDefault(
x => x.ContactEventTypeID == contactEventType.ContactEventTypeID
&& x.ProgramCode == programCode && x.BrandCode == brandCode);
}
當我與brandCode和值的程序代碼調用它,我得到的預期值從數據庫返回的。當我打這個電話,但明確設置x.ProgramCode和x.BrandCode爲null,我得到預期的默認值從數據庫返回的:
ContactEventValue value = ent.ContactEventValues.Single(
x => x.ContactEventTypeID == contactEventType.ContactEventTypeID
&& x.ProgramCode == null && x.BrandCode == null);
然而,當我調用該方法對零和的程序代碼brandCode,我從數據庫中取回null!
我試圖改變==每答案.Equals()這個問題:Nullable optional parameter
所以x.BrandCode.Equals(brandCode)取代x.BrandCode == brandCode和x.ProgramCode.Equals (programCode)替換了x.ProgramCode == programCode,但仍然無法工作。
我也試過使用?? ??運營商,仍然沒有工作。
這個問題說沒有找到解決方案,他/她不得不使用存儲過程:EF 4 Query - Issue with Multiple Parameters我真的不想去那裏。
任何想法?
我們使用EF 5.0.0。我試圖在配置上設置UseDatabaseNullSemantics,但UseDatabaseNullSemantics不存在。谷歌搜索它和UseDatabaseNullSemantics似乎並不存在於C#中。 – jgerman 2013-05-01 14:41:46
我已經更新了我的答案。 – devdigital 2013-05-01 16:24:40
我們使用.Net 4.5。這工作!非常感謝! – jgerman 2013-05-01 17:06:50