我有两个表之间的上述关系。我写了下面编译的查询:
internal static readonly Func<DataClasses1DataContext, int, CRMDataType, int, IEnumerable<CustomField>> GetCRMCustomFields = CompiledQuery.
Compile<DataClasses1DataContext, int, CRMDataType, int, IEnumerable<CustomField>>
((context, parentId, parentType, dataParentId) => context.tblCRMCustomFields.Where(f =>f.ParentType == (int)parentType)
.Select(f => new CustomField(parentId, parentType, f.CreationDate) { Description = f.Description, Value = f.tblCRMCustomFieldsDatas.Single(d=>parentId == dataParentId).StringValue
,Id = f.Id }));
在查询中,我首先查询tblCRMCustomField表以创建自定义对象(CustomField)。在CustomField对象的查询/填充期间,我使用另一个设置其值 查询tblCRMCustomFieldsData:
Value = f.tblCRMCustomFieldsDatas.Single(d=>parentId == dataParentId).StringValue
如果f.tblCRMCustomFieldsDatas.Single(d =&gt; parentId == dataParentId)为空或不存在,则不会抛出异常吗?
在测试中,它会很好地填充CustomField对象,并且只保留Value null。这就是我想要的,我只是期望.Single()抛出异常,因为sqce是空的。