我遇到了为LINQ
到SQL
中的分组行列表定义数据类型的问题。
我有一个模型MyDBModel
,有2个属性
public class MyDBModel
{
public List<a_Cases_tbl> a_Cases { get; set; }
public List<b_Cases_tbl> b_Cases { get; set; }
}
在控制器中,我尝试将数据导入此属性
MyDBDataContext myDb = new MyDBDataContext();
var listModel = new MyDBModel();
listModel.a_Cases=
(from t in myDb.a_cases_table
group t by new { t.Date, t.Name, t.Category, t.Code }
into myGroup
select new { myGroup.Key.Date, myGroup.Key.Name, myGroup.Key.Category, myGroup.Key.Code });
listModel.b_Cases =
(from t in myDb.B_cases_table
group t by new { t.Date, t.Name, t.Category, t.Code }
into myGroup
select new { myGroup.Key.Date, myGroup.Key.Name, myGroup.Key.Category, myGroup.Key.Code });
我收到错误:
Cannot implicitly convert type 'System.Collections.Generic.List < AnonymousType#1 > ' to 'System.Collections.Generic.List < MVC4.a_Cases_tbl > '
如果结果将是多列分组列表,那么a_Cases
的数据类型应该是什么?或者如果结果按不同类型的多个字段分组,如何定义List < IGrouping < Tkey, Telement > >
?
答案 0 :(得分:1)
在您的代码中,您创建了匿名类型列表。您必须告诉编译器您创建了适当类型的对象。
select new a_Cases_tbl{ myGroup.Key.Date, myGroup.Key.Name, myGroup.Key.Category, myGroup.Key.Code });
...
select new b_Cases_tbl{ myGroup.Key.Date, myGroup.Key.Name, myGroup.Key.Category, myGroup.Key.Code });