0
我有一个c#MVC应用程序通过/_vti_bin/ListData.svc服务参考访问SharePoint博客数据。我能够成功获取所有PostsItem以及所有CategoriesItems。但是,它们之间似乎没有任何关系。如果我获取所有帖子并遍历它们,则它们全部在Category属性中显示零个项目。通过WCF访问SharePoint博客文章时有空类别
我的假设是,有一个多对多的表,SharePoint正在使用,通过WCF不可用。我想知道是否有方法可以访问这些信息。这是我的代码。
public List<BlogData.PostsItem> GetPostsByCategory(string category)
{
List<BlogData.PostsItem> items = new List<BlogData.PostsItem>();
BlogData.CategoriesItem categoryItem = db.Categories.Where(c => c.Title == category).FirstOrDefault();
if (categoryItem != null)
{
var posts = db.Posts.ToList().OrderByDescending(p => p.Created);
foreach (var postsitem in posts)
{
Debug.Write(postsitem.Category.Count());
if (postsitem.Category.Contains(categoryItem))
{
items.Add(postsitem);
}
}
}
return items;
}
解决:
新增
db.LoadProperty(postsitem, "Category");
前
if (postsitem.Category.Contains(categoryItem))
和它的工作就像一个魅力。谢谢,杰森。
编辑2:
显然,在进一步阅读,这是不是最有效的方法,考虑到我要检查一个类别中的所有文章。我使用Expand来代替LoadProperty。
var posts = db.Posts.Expand("Category").OrderByDescending(p => p.Created);
快速,简单,完美的解决方案。谢谢! –
这里是从我的代码被修改线: '变种帖= db.Posts.Expand( “分类”)OrderByDescending(p值=> p.Created);' 谢谢,@Jason。 –