原始Sql - System.Data.Entity.Core.EntityCommandExecutionException'发生在EntityFramework.SqlServer.dll中但未在用户代码中处理

时间:2017-03-22 00:45:41

标签: c# asp.net-mvc sql-server-2012 ef-code-first rawsql

我在下面做了原始SQL查询,只从表中选择某些字段。

var qry = "SELECT ptitle, pname, paid, pidno, pdob, pgender, ptelh FROM patient where ";
            if (strPatientName != "")
            {
                qry += "name like @name ";
                if (strMRN != "")
                    qry += "&& id like @id ";
            }

var query = db.Database.SqlQuery<patient>
                ((qry), new SqlParameter("@name", "%" + strPatientName + "%"), new SqlParameter("@id", "%" + strMRN + "%")).ToList();

但是当我运行时,它会在我未包含在查询中的列中发出错误。

  

'System.Data.Entity.Core.EntityCommandExecutionException'发生在EntityFramework.SqlServer.dll中,但未在用户代码中处理

     

其他信息:数据阅读器与指定的“project.Models.patient”不兼容。类型为“nbid”的成员在数据读取器中没有相应的具有相同名称的列。

1 个答案:

答案 0 :(得分:0)

您正在寻找将数据部分加载到EF中。您需要手动将数据加载到EF。您会在here找到类似的问题。