我在数据库中有一个包含多个列的视图。我正在尝试此查询
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();
但是这会返回仅包含空值且没有数据的对象列表。 但是,当我尝试像这样检索单列时,它可以正常工作
var res = dbContext.Database.SqlQuery<string>("Select Name from dbo.MyView").ToList();
我注意到问题出在TestEntity上,因为当我使用字符串而不是TestEntity时,它会起作用。 有什么建议我在这里做错了吗?
答案 0 :(得分:9)
只需替换以下代码
var res = dbContext.Database.SqlQuery<TestEntity>("Select * from dbo.MyView").ToList();
用这个再试一次......
var res = dbContext.Database.SqlQuery("Select * from dbo.MyView").ToList<TestEntity>();
如果仍然不起作用,那么你需要检查你的
TestEntity
和你的
dbo.MyView
对于相同的列。因为如果MyView和TestEntity中有不同的列,那么它将无效...
如果你在查询中更改了列名,那么它会抛出一个异常,否则它将无法正常工作......
如果这对你有所帮助,那就不要忘记标记......
...谢谢