我一直在尝试使用 EF5DbContext
使用 SQL 查询数据的正确方法。我完全知道 EF 是一个 ORM,通常会与 linqTOentities 和实体对象一起使用。但我有一个有趣的案例需要 SQL。
这是我一直在使用的示例代码:
testQuery = "select 'HITHERE' as firstval, 'HOTHERE' as secondval;";
var results = DataContext.Database.SqlQuery<string>(testQuery);
当我运行上面的代码(C#)时,出现以下错误:
{"The data reader has more than one field. Multiple fields are not valid for EDM primitive or enumeration types."}
我认为该错误与string
不是.SqlQuery<string>(testQuery)
要绑定的正确类型有关。所以我把代码改成这样:
testQuery = "select 'HITHERE' as firstval, 'HOTHERE' as secondval;";
var results = DataContext.Database.SqlQuery<List<string>>(testQuery);
当我运行这个更新的代码时,results
没有值,计数为 0。但是,当我在 SSMS 中运行测试 sql 查询时,我得到了你所期望的;一行,两个带有列名的值。firstVal = HITHERE 和 secondVal = HOTHERE。
如何使用 DbContext 将这些选择值绑定到 C# 中的变量?