我正在编写一个连接到 SharePoint 2010 服务器的动态 OData 客户端。
我真的很希望能够访问 List 及其所有相关列。如果它是一个选择列,我希望能够访问已定义的可能选择。这甚至可能吗?
我一直试图通过将 /listdata.svc/$metadata 输入到 IEdmModel 中来查找我想要的信息。我只是不知道它可能在哪里。
这是我开始的,我可以遍历模型中的实体,以及它们各自的属性。我可以看到选择列显示为实体类型。
示例:我有一个名为 AQUISITION_TYPE 的列,其中“捐赠”、“购买”、“税收销售”作为可能的选择。
假设这不是死胡同,任何指针都会受到赞赏。
foreach ( IEdmEntityType type in model.SchemaElementsAcrossModels().OfType<IEdmEntityType>())
{
str_test += "\n" + type.FullName();
foreach (IEdmProperty property in type.Properties())
{
//my Choice columns are of type Entity
if (property.Type.IsEntity())
{
str_test += "\t" + property.Name + " - " + property.Type.TypeKind().ToString() + " - " + property.PropertyKind.ToString() + "\n";
}
//My primative column types are here
else
{
str_test += "\t" + property.Name + " - " + property.Type.TypeKind().ToString() + " - " + property.PropertyKind.ToString() + "\n";
}
}
}
部分解决方案... 我可以在 lists.asmx SOAP 服务中很容易地找到我想要的信息。