我有以下代码:呼叫与空参数失败
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