Как и большинство других методов LINQ, OrderBy
не влияет на базовый запрос, который является неизменным. Вы должны сделать что-то с возвращаемым значением:
this.Article.tags = tags.OrderBy(t => t.name);
Проблема в том, что tags
не является IEnumerable или IQueryable: это EntityCollection. Таким образом, приведенное выше заявление не будет работать очень хорошо. Кроме того, имя вашего метода (GetTags
) не очень хорошо указывает на то, что вы собираетесь изменять порядок тегов на объекте Article
, поэтому лучше оставить локальный OrderBy
, и делайте это снова каждый раз, когда кто-то звонит GetTags
:
var tags = this.Article.tags;
if (!tags.IsLoaded && this.Article.EntityState != EntityState.Detached)
{
tags.Load();
}
return string.Join(" ", tags.Select(t => t.name).OrderBy(t => t))