我将 a 绑定ListView
到IQueryable<IGrouping<>>
使用 Linq-to-SQL 生成的对象,如下所示:
var lineChanges = dcOJ.LineAuthoriserChanges.GroupBy(g => g.tbl_line)
.OrderBy(ord => ord.Key.tbl_journal.RefNo);
lvLineAuthoriserChanges.DataSource = lineChanges;
lvLineAuthoriserChanges.DataBind();
在标记中,我尝试引用对象的Key
属性IGrouping<>
:
<td rowspan="2"><%# Eval("Key.tbl_journal.RefNo") %></td>
但是,我收到错误:
DataBinding: 'System.Data.Linq.SqlClient.ObjectReaderCompiler+Group`2[[Online.LinqToSQL.tbl_line, Online, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[Online.LinqToSQL.LineAuthoriserChange, Online, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' does not contain a property with the name 'Key'.
我可以投射数据项并以这种方式显示值,但它似乎很不令人满意。
<%# ((IGrouping<tbl_line, LineAuthoriserChange>)Container.DataItem).Key.tbl_journal.RefNo %>
有谁知道发生了什么?抱怨应该是关于类型对象上缺少属性的问题似乎很奇怪。