C# 外部内容类型的辅助查找列在从主目录刷新后未在列表中显示数据

C# 外部内容类型的辅助查找列在从主目录刷新后未在列表中显示数据,c#,sharepoint,bcs,sharepoint2010-bcs,lookup-field,C#,Sharepoint,Bcs,Sharepoint2010 Bcs,Lookup Field,我创建了一个SharePoint列表,该列表具有指向外部列表的查找列。我还指示SharePoint在我的列表中显示几个与主要外部查找列相关的辅助列 问题是,当我以编程方式向列表中添加一个新的SPListItem并设置主查找字段的SPLookupValue(这很好)后,当我转到SharePoint门户中的列表视图时,我会在主字段中看到该值,但当我单击绿色的“从外部列表刷新数据”时图标将数据从外部列表加载到辅助字段中,我得到以下消息 刷新成功 已刷新0个项目 无法刷新0个项目。请与系统管理员联系 此

我创建了一个SharePoint列表,该列表具有指向外部列表的查找列。我还指示SharePoint在我的列表中显示几个与主要外部查找列相关的辅助列

问题是,当我以编程方式向列表中添加一个新的SPListItem并设置主查找字段的SPLookupValue(这很好)后,当我转到SharePoint门户中的列表视图时,我会在主字段中看到该值,但当我单击绿色的“从外部列表刷新数据”时图标将数据从外部列表加载到辅助字段中,我得到以下消息

刷新成功

已刷新0个项目

无法刷新0个项目。请与系统管理员联系

此外,当我尝试编辑SPListItem(主要外部查找列中显示的值)(该值应为有效值)时,我会在文本框下方显示以下消息:

“未找到完全匹配的项。请单击未解析的项以获取更多选项。您也可以使用“选择”按钮选择外部数据。”

当我点击图标选择外部数据时,会出现一个弹出窗口/对话框,允许我从外部列表中选择项目。所有数据都正确显示。没有错误。但是,当我实际选择其中一行并单击“确定”时,我会收到相同的红色错误消息,表示“未找到精确匹配…”


我猜我的外部内容类型、Bdc模型、负责检索特定实体结果数据的特定查找器方法可能有问题,但我不确定如何准确识别错误。

好的。所以我解决了问题


我已经为我的实体的所有属性创建了标识符,而不是仅仅为使特定实体唯一的属性创建标识符!我为具有空值的属性和其他类型为DateTime的属性创建了标识符,这些属性根本不能唯一标识实体。因此,当尝试对外部列表数据执行刷新时,它尝试检索每个单独列表项的外部数据,假设外部列表中的每个列/字段都是特定列表项的唯一标识符的一部分。显然,这会阻止数据正确刷新。

正常。所以我解决了问题


我已经为我的实体的所有属性创建了标识符,而不是仅仅为使特定实体唯一的属性创建标识符!我为具有空值的属性和其他类型为DateTime的属性创建了标识符,这些属性根本不能唯一标识实体。因此,当尝试对外部列表数据执行刷新时,它尝试检索每个单独列表项的外部数据,假设外部列表中的每个列/字段都是特定列表项的唯一标识符的一部分。显然,这妨碍了数据的正确刷新。

您能提供您的BCS类代码吗?您能提供您的BCS类代码吗?