当数据不为null时,Linq Query以空值返回

时间:2014-06-12 20:27:19

标签: c# linq dynamics-crm-2011

我有一个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

0 个答案:

没有答案