我正在编写连接到SharePoint 2010服务器的动态OData客户端。
我真的希望能够访问List及其所有相关列。如果它是一个选择列,我希望能够访问已定义的可能选项。这甚至可能吗?
我一直在尝试通过将/listdata.svc/$metadata提供给IEdmModel来找到我想要的信息。我只是无法弄清楚它可能在哪里。
这是我开始使用的内容,我可以遍历模型中的实体,以及它们各自的属性。我可以看到Choice列显示为Entity类型。
实施例: 我有一个名为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服务中轻松找到我想要的信息。