c# - 从具体化的“System.Int16”类型到“System.Int32”类型的指定转换无效
问题描述
我使用“实体框架 6”从数据库加载数据。目前我想从视图中加载数据,而不是从带有 ef6 的表中加载数据。我创建了一个只有属性的类(一个普通的旧 c# 对象(poco))。
你可以在这里看到一个 poco 类:
public class Person {
public string Name { get; set; }
public int? PhoneNumber { get; set }
public int? Age { get; set; }
}
然后我想用这段代码加载视图:
var sql = "SELECT Name, PhoneNumber, Age from Person;"
using(var context = new PersonContext()){
var personList = context.Database.SqlQuery<Person>(sql).toList();
}
在运行时,程序抛出以下错误:
The specified cast from a materialized 'System.Int16' type to the 'System.Int32' type is not valid.
所以我知道属性类型和数据库列类型不相等。但是我怎样才能找到代码中的哪个属性与数据库列不相等?因为在实际应用中我有很多属性,所以这个问题对我找到属性很重要。
解决方案
推荐阅读
- c# - ConfigurationManager 错误:通用类型“configurationmanager<T>”需要 1 个类型参数
- postgresql - 行级安全启用更新不起作用,而标准更新使用相同的逻辑
- android - 使用linkedin登录时获取LinkedIn响应为空-特定用户案例
- git - git config --global core.autocrlf false 仍然尝试转换行尾?
- c# - 将文本框值与数据库值进行比较并更新到不同的表中
- java - AppInventor2 TCP 客户端扩展使应用程序崩溃
- javafx - Change Listener 是否只添加了一次或多次
- spring-boot - 如何在 Spring Boot 中创建调度程序类的多个实例?
- symfony - 触发教义事件
- signalr - signalR:在用户注销时(连接停止后),断开连接事件未触发