我使用ASP.NET 3.5,LLBLGenPro 3.0和10.1.7 DevExpress的一個小區。我有一個ASPxGridView與LinqServerModeDataSource。 ASPxGridView的每一行對應於LLBLGenPro中的一個TaskEntity。 TaskEntity的其中一個屬性是OrganizationCollection,它是相關OrganizationEntities的集合。我想要做的就是添加一個列到ASPxGridView稱爲OrgList,這將通過名稱(最好在<br>
-delimited列表中顯示相關的組織的名單,所以每個項目將在其自己的行,但該列表會全部在同一個單元格中,如果該列的EncodeHtml屬性設置爲「False」,則該單元格工作正常)。如何聚合項目的集合中的ASPxGridView
目前,我在lsmdsTasks_Selecting()事件(這是一個簡單的例子):
IQueryable<TaskEntity> taskQuery;
taskQuery = TaskQueryStore.GetTasks(...);
var query = from task in taskQuery
select new
{
task.Id,
task.TaskName,
OrgList = ???
}
e.KeyExpression = "Id";
e.QueryableSource = query;
到目前爲止,我已經嘗試了一些事情,爲「???」,結果如下:
首先,我想:
OrgList = task.OrganizationCollection.Aggregate("", (acc, item) => (acc == "" ? "" : acc + "<br>") + item.OrgName)
這給了我以下ORMException:「‘總’在此LINQ提供程序不支持,請嘗試重寫使用方法查詢其支持「。
然後,我想:
OrgList = String.Join("<br>", task.OrganizationCollection.Select(x => x.OrgName).ToArray())
這給了我以下ORMException:「方法調用‘加入’並沒有一個已知的數據庫映射功能或其他已知的處理。」
已經種工作一直是唯一的事情:
OrgList = GetOrgList(task.Id)
然後定義單獨的GetOrgList()
方法,它接受任務ID,並建立在我想要的格式列表,並將其作爲一個字符串。這實際上確實顯示出網格中的數據我想要的方式,但缺點是,當你試圖解決此列上它不能正常工作,當您嘗試使用它只是過濾自動篩選此列篩選不管。另外,我認爲它比數據庫多打了數次。
有沒有什麼辦法讓這個與排序和篩選完整的工作?或者我是否需要禁用此列的這些功能?
我應該排序此列的工作? – Filip 2012-01-12 08:50:25
我期望它根據在此列中返回的最終字符串進行排序,即如果列中的一個單元格的值爲「A
B
C」,第二個是「B
C
D」,則它會根據這些值進行排序,只是將它們視爲字符串。 – RebelScum 2012-01-12 14:30:30
您使用LLBLGen Pro生成哪個ORM? (LLBLGen Pro Runtime Framework 3.1,Entity Framework v1,Entity Framework v4,Linq to Sql,NHibernate 2.x/3.0(hbm.xml和FluentNHibernate)) – JamieSee 2012-01-31 16:36:27