我有一个Linq查询,我正在使用一些奇怪的结果。该查询返回时其中一个项为null,但数据库中的数据不为空。
public void LookUpSomeInfoFromContractDetail(WorkflowHelper workflowHelper, String contractDetailId)
{
try
{
Guid _contractDetailId = workflowHelper.GuidChanger(contractDetailId);
workflowHelper.serviceContext.ClearChanges();
var contactDetailQuery = from ctd in workflowHelper.serviceContext.ContractDetailSet
where ctd.ContractDetailId.Equals(_contractDetailId)
select new { ctd.Title, ctd.ContractId, ctd.ContactId};
foreach (var c in contactDetailQuery)
{
//logic here
}
}
catch (Exception ex)
{
//catch stuff here
}
}
问题是ctd.ContactId
值返回null。但是,如果我在SQL中查看相同的记录,则该值不为空。
有什么想法吗?
在Millie Smith的评论之后,我检查了SQL和Linq,发现了一些有趣的东西:
在SQL中,我发现有一个值等于我正在寻找的值:
select
ctd.ContactId
,ctd.CustomerId
from ContractDetail ctd
where ctd.CustomerId = ctd.ContactId
返回相同数量的结果:
select
ctd.ContactId
,ctd.CustomerId
from ContractDetail ctd
仍然疑惑为什么拉<{1}}没有出现在Linq