- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个包含 3 列的 Person
实体:
public PERSON {
public int OID { get; set; }
public string NAME { get; set; }
public string SURNAME { get; set; }
}
我想用原始 SQL 查询它,但不指定所有列,所以我写:
var query = "select NAME, SURNAME from PERSON";
var list = context.SqlQuery<PERSON>(query).ToList();
但它抛出异常:
System.Data.Entity.Core.EntityCommandExecutionException : The data reader is incompatible with the specified '...'. A member of the type, 'OID', does not have a corresponding column in the data reader with the same name.
因此,它似乎尝试映射所有列,如果缺少某些列,则会抛出异常。
有没有办法让它忽略原始 SQL 查询中不存在的列并仅映射可访问的列?
原因是,我对某些实体有很多列,有时我只想查询部分列。我不想创建只包含每个查询所需列的新类。
最佳答案
我能立即想到 3 个适合您的选项。
选项 1:重写您的查询并使用标准 Linq 查询:
var persons = from p in context.Persons
select new PERSON
{
NAME = p.NAME,
SURNAME = p.SURNAME
};
选项 2:为不需要的列返回虚拟值
var query = "select 0 AS OID, NAME, SURNAME from PERSON";
var list = context.SqlQuery<AlmostPERSON>(query).ToList();
选项 3:使用数据库中所需的列创建您自己的中间类:
public class AlmostPERSON
{
public string NAME { get; set; }
public string SURNAME { get; set; }
}
var query = "select NAME, SURNAME from PERSON";
var list = context.SqlQuery<AlmostPERSON>(query).ToList();
您甚至可以将这个中间类投影到您的标准实体上,如下所示:
var list = context.SqlQuery<AlmostPERSON>(query)
.Select(ap => new PERSON
{
NAME = ap.NAME,
SURNAME = ap.SURNAME
})
.ToList();
关于entity-framework - 上下文 SqlQuery<>() 而不详细说明所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29736642/
带有 Cosmos DB + Nodejs 的 Azure Function App 无法使用 SQLQuery(输入)。没有返回任何文件。 我已成功获取 Id/PartionKey 组合来返回文档。
我在插入数据库时遇到问题,我创建了一个函数将数据插入表中,但它仅影响第一行。 这是我的功能: add 第 18 页 http://cran.r-project.org/web/packages/R
我要为图书数据库编写一个查询。问题是按降序列出每个作者在 1995-2000 年的总收入。 SELECT DISTINCT b.author,b.earnings as TOTAL_EARNING F
我试过了 QSqlQuery query; query.prepare("DELETE FROM names WHERE id_col = :ID OR id_parent = :ID");
如何从 hibernate SQL 查询中提取变量 total、min、max 并将它们分配给 java 变量? (select count(*) as total, min(price) as mi
我正在 R 中执行以下命令: dbhandle <- odbcDriverConnect('driver={SQL Server};server=serveripaddress;database=DB
我一直在执行以下操作以使用我的 sql 查询传递参数: var retval = context.MyObject.SqlQuery(sql.ToString(),
有谁知道Database.SqlQuery在幕后做了一些会使其线程不安全的事情(比如创建或登记事务等)? 这是我必须从多个线程调用的一段代码 - 查询非常简单,硬编码(无法访问共享的用户代码数据):
我对 Hibernate SQLQuery.list() 方法有这种奇怪的行为。 问题描述如下: 我有一个 sql 选择查询,它只从数据库中检索单个列(组)(即,select group from p
使用 querydsl-sql 创建 SQLQuery 的方法: protected final T select(RelationalPathBase path, Function code)
如何使用 SQLQuery 显示查询的完整字符串。我尝试使用 getQueryString()但它不显示返回字符串中的参数值。 知道如何显示将在 MySQL 数据库服务器上执行的完整查询吗? Quer
我有一个名为 scholars_ 表,其中一列的名称为 validity,其中包含如下数据: 2016-2019 2016-2020 2016-2017 2018-2019 我想要实现的是获取学者的s
我有一个查询使用命名参数调用 postgres 存储过程。该过程可以采用许多参数,其中大部分都有默认值,我只想使用几个。 SQL 看起来像这样: SELECT {(mytable).*} FROM m
在我的 java 代码中,我是这样写的。此查询一次又一次地返回相同的记录。但是在数据库中我只有一条记录。 String queryString = "select e.business_event_i
hibernate 3.6 和 postgresql 9.1。使用 SQLQuery 如何获取结果数组数据(长数组 - 助手,“文本,长,时间戳”行数组 - 帐户)? limit = 1000
这是关于Java和MySQL的问题。我有这样的摘录: String selectString = "select"; int selectIndex = config.getMappingSql().
我正在使用 Entity Framework ,并且我有这个类 public partial class TipoRequisicaoSubCategoria { public
我应该如何构建 mysql 参数? 这是我做的方法,但仍然没有从中获得输出: var cities = ce.city.SqlQuery("Select * from world.city where
这个问题在这里已经有了答案: Hibernate createNativeQuery using IN clause (2 个答案) 关闭 8 年前。 我正在尝试将整数列表传递给 SQLQuery。
我使用这个查询 SELECT id_mov, movimientos.id_expte, expte.id_expte, id_dr, detalle, fecha, plazo, expte 来自运
我是一名优秀的程序员,十分优秀!