KeyValuePair 来自在实体框架上运行原始 SQL 查询

mar*_*man 2 c# linq entity-framework entity-framework-4 dbcontext

我正在运行以下查询和代码,我希望在 KeyValuePair 上返回两列。我看到返回的总行是正确的,但所有的键值对都是空的!

string query = @"Select id,name from persons";

var persons = context.Database.SqlQuery<KeyValuePair<string,string>>(query);
Run Code Online (Sandbox Code Playgroud)

我看到一个答案说我必须创建一个类才能得到结果;但我的问题是我不能在 KeyValuePair 上得到结果吗?或者我必须定义一个属性匹配的类?

Ger*_*old 5

问题是KeyValuePair没有无参数的构造函数。EF 通过首先创建一个对象(通过其无参数构造函数)然后设置其属性来具体化一个对象。