首页 > 解决方案 > 从具体化的“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#entity-framework-6

解决方案


推荐阅读