我正在尝试查询这样的内容:
var values = new Entities().result.SqlQuery(
"select distinct
i.item_type_id,
Min(value) over (partition by i.item_type_id) as min,
Max(value) over (partition by i.item_type_id) as max,
Avg(value) over (partition by i.item_type_id) as avg
from items i
inner join packages p on p.id = i.package_id "
WHERE ... ").ToList();
首先我尝试var values = new Entities().item.SqlQuery(...)
但结果与item无关,item与此查询的结果具有不同的属性。
比我创建的结果对象:
public partial class rolling_table
{
public int item_type_id { get; set; }
public int min { get; set; }
public int max { get; set; }
public int avg { get; set; }
}
并运行var values = new Entities().result.SqlQuery()
但它抱怨
实体类型结果不是当前模型的一部分 上下文。
我猜它认为结果是数据库中的一个表,但事实并非如此。
如何查询自定义类型,而不是持久对象?
感谢
答案 0 :(得分:1)
您可以在SqlQuery
对象上使用Database
方法。
var values = context.Database.SqlQuery<rolling_table>("your_query").ToList();