ger*_*b0n 8 c# linq database entity-framework notsupportedexception
我找到正确的语法来完成以下操作时遇到了一些麻烦:
是否可以使用LINQ(Lambda Expression)到.GroupBy数据,而不是使用通常的.Sum()或.Count(),我希望结果数据是Int的列表.
我定义了自己的类:Filter_IDs.它的构造函数需要两个参数:
public int? type; // Represents the object_type column from my database
public List<int?> objects; // Represents the object_id column from my database
Run Code Online (Sandbox Code Playgroud)
我想将数据库中的数据加载到此对象中.以下LINQ查询应该生成Filter_ID列表:
以下LINQ查询应该生成Filter_ID列表:
List<Filter_IDs> filterids = ef.filterLine
.GroupBy(fl => fl.objectType)
.Select(fl => new Filter_IDs { type = fl.Key, objects = fl.Select(x => x.object_id).ToList() })
.ToList();
Run Code Online (Sandbox Code Playgroud)
使用此查询不会产生构建错误,但会在RunTime上显示"NotSupportedException".
数据库看起来像这样可以让您更好地理解数据:
http://d.pr/i/mnhq+(droplr image)
提前谢谢,Gerben
Kek*_*Kek 11
我认为问题是DB无法在select中调用ToList,也无法创建新的Filter_ID.
尝试这样的事情:
List<Filter_IDs> filterids = ef.filterLine.Select(o => new { objectType = o.objectType, object_id=o.object_id})
.GroupBy(fl => fl.objectType).ToList()
.Select(fl => new Filter_IDs { type = fl.Key, objects = fl.Select(x => x.object_id).ToList() })
.ToList();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
55545 次 |
最近记录: |