我想在下面的例子中,当我打电话Load()
添加一个排序依据:订单通过实体框架加载
(注:此对象已加载其他地方的EF文章)
private string GetTags()
{
var tags = this.Article.tags;
if (!tags.IsLoaded && this.Article.EntityState != EntityState.Detached)
{
tags.Load();
tags.OrderBy(t => t.name);
}
StringBuilder result = new StringBuilder();
foreach (var tag in tags)
{
result.Append(tag.name).Append(" ");
}
return result.ToString();
}
问题是这是不按alphebetical顺序排序标签。我错过了什么?
当我做'this.Article.tags.Load()'时,我可以orderby吗? –
@DMoses:有一些技巧可以在急切加载时正常工作(http://blogs.msdn.com/b/alexj/archive/2009/02/25/tip-1-sorting-relationships -in-entity-framework.aspx),但我不知道有什么办法可以像这样对一个'OrderBy'进行延迟加载。当然,您可以只执行一个单独的查询来获取与您所在文章绑定的标签,并将它们作为查询的一部分进行排序,但不会自动将它们加载到“Article.tags”属性中。 – StriplingWarrior