我尝试使用LINQ to SharePoint检索和过滤带有查找字段的简单列表
var list = _db.Leaves.Where(x =>x.Employee != null && x.Employee.Id == empId).ToList();
问题有时是Field Employee的随机问题!我不知道为什么!它是如此奇怪,以至于它随机发生,导致它抛出铸造异常,任何人都知道为什么会发生这种情况?
<Field Type="Lookup" DisplayName="Employee" Required="True" EnforceUniqueValues="FALSE" List="Lists/Employees" ShowField="EnFullName" ID="{26183411-9bbf-48a1-b2f8-3388b98c7fef}" Name="Employee" ColName="int2" RowOrdinal="0" Indexed="TRUE" RelationshipDeleteBehavior="Restrict" />
答案 0 :(得分:0)
如果没有为该字段分配值,则Employee将为null。
仅仅因为它是必填字段并不意味着该字段将始终具有值。 “required”仅适用于列表的Web表单表单,它不是对实际数据库本身的限制。例如,在代码中,您可以创建/编辑对象并将该字段设置为null而不会出现任何问题,即使它是必需的。如果在上载文档时有文档库,则会创建列表项但不填充任何字段;直到该项目后来编辑,查找将是非空的(即使只通过开箱即用的Web UI访问)。还有其他例子,但这个想法仍然存在。在SharePoint中,您需要检查必填字段。