如何从非实体类型 sql 查询中检索多个列



我在数据库中有一个包含几列的视图。我正在尝试此查询

public class TestEntity
{
    public string ref { get; set; }
    public string Name { get; set; }
    public string Batch { get; set; }
}
var res = dbContext.Database.SqlQuery<TestEntity>("Select * from dbo.MyView").ToList();

但这返回只有 null 值而没有数据的对象列表。但是,当我尝试像这样检索单列时,它可以工作

var res = dbContext.Database.SqlQuery<string>("Select Name from dbo.MyView").ToList();

我注意到问题出在测试实体上,因为当我使用字符串而不是测试实体时,它可以工作。任何建议我在这里做错了什么?

只需替换以下代码

var res = dbContext.Database.SqlQuery<TestEntity>("Select * from dbo.MyView").ToList();

有了这个,再试一次...

var res = dbContext.Database.SqlQuery("Select * from dbo.MyView").ToList<TestEntity>();

如果仍然不起作用,那么您需要检查您的

测试实体

和你的

德博。我的视图

因为如果 MyView 和 TestEntity 中有不同的列,那么它将无法工作...

如果您在查询中更改列名,那么它将引发异常或无法正常工作......

如果这对您有帮助,那么不要忘记标记...

谢谢。。。

最新更新