我有一些linq to sql方法,当执行查询时,它返回一些匿名类型。
我想将该匿名类型返回到我的服务层,以便对其进行逻辑处理等操作。
但我不知道如何返回它。
我原以为可以这样做:
public List<T> thisIsAtest()
{
return query;
}
但是我遇到了这个错误。
Error 1 The type or namespace name 'T' could not be found (are you missing a using directive or an assembly reference?)
我不确定我缺少哪个汇编代码,或者是否是这种情况。
谢谢
编辑
好的,我的第一个问题解决了,但现在我有一个新问题,因为我不太了解匿名类型,所以不知道如何解决。
我收到以下错误
无法隐式转换类型 'System.Collections.Generic.List' 到 'System.Collections.Generic.List
这是查询
DbContext.Table.Where(u => u.Table.UserId == userId && u.OutOFF != 0)
.GroupBy(u => new { u.Table.Prefix })
.Select(group => new { prefix = group.Key,
Marks = group.Sum(item => (item.Mark * item.Weight) / item.OutOFF) })
.ToList();
Edit 2
public class ReturnValue
{
string prefix { get; set; }
decimal? Marks { get; set; }
}
public List<ReturnValue> MyTest(Guid userId)
{
try
{
var result = dbContext.Table.Where(u => u.Table.UserId == userId && u.OutOFF != 0).GroupBy(u => new { u.Table.Prefix })
.Select(group => new { prefix = group.Key, Marks = group.Sum(item => (item.Mark * item.Weight) / item.OutOFF) }).ToList();
return result;
}
catch (SqlException)
{
throw;
}
。Anonymous Types:
a is new{string Prefix}
b is new{ 'a prefix, decimal? marks}
class ReturnValue { int prefix; decimal Marks; }
然后返回new ReturnValue(....)
而不是匿名类型呢? - marc_s.Select()
中,你需要使用:.Select(group => new RETURNVALUE { prefix = group.Key, ...
- 这不是你所写的!你没有添加在 .Select() 中创建的 TYPE - 这就是你的问题。 - marc_s