2011-12-03 28 views
0
var articles = (from a in context.Articles 
            where a.Id != articleId 
            orderby a.Categories ??Name?? ascending 
            select a).ToList(); 

a.Categories是表(有多對多的關係連接)實體框架,以便通過多對多表

public EntityCollection<Category> Categories 
     { 
      get 
      { 
       return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Category>("AsoModel.CategoryArticle", "Category"); 
      } 
      set 
      { 
       if ((value != null)) 
       { 
        ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Category>("AsoModel.CategoryArticle", "Category", value); 
       } 
      } 
     } 

我怎麼能對分類表使用升序的名稱。

例如:

第二十名:足球和這篇文章是體育類和新聞。所以兩張桌子被許多關係聯繫起來。現在,我想按類別名稱訂購這篇文章,新聞是第一,體育是第二... ...

+0

這個問題是不合理的,如何分類文章基於類別名稱?用一些例子來解釋你的問題。 –

+0

如果您有多個類別,您想對哪個類別進行排序?我不認爲一篇文章的所有類別名稱都是相同的? –

回答

1
var articles = context.Articles.Where(a=>a.Id != articleId) 
.OrderBy(p=>p.Categories.OrderBy(q=>q.Name).FirstOrDefault().Name).ToList(); 
+0

非常感謝 – senzacionale