c# - 在 Entity Framework 上运行原始 SQL 查询的 KeyValuePair

标签 c# linq entity-framework entity-framework-4 dbcontext

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

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

var persons = context.Database.SqlQuery<KeyValuePair<string,string>>(query);

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

最佳答案

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

关于c# - 在 Entity Framework 上运行原始 SQL 查询的 KeyValuePair,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20532929/

相关文章:

c# - 如何附加包含 n 到 n 关系的对象?

c# - 如何在 Linq 查询中比较字符串

c# - 为什么 LINQ to objects 方法的顺序很重要

c# - .net SqlClient 和 .NET CORE Web API 连接字符串

c# - WPF - 工具提示内容绑定(bind)到组合框所选项目

c# - 使用 Task.ContinueWith 时如何避免嵌套的 AggregateException?

c# - 使用ZOHO SMTP配置发送邮件时出现`The operation has timed out.`异常

c# - 使用 LINQ 查询 XDocument 的最佳方式?

c# - 如何将单个 Controller 与不同的 DBContext 一起使用?

c# - 名称不匹配时的 Entity Framework 外键