相关疑难解决方法(0)

在EF 4.3中使用参数执行存储过程时,对象类型System.Collections.Generic.List中不存在映射

最近我一直在处理存储过程并遇到一个奇怪的问题.

首先,我能够通过以下方式从数据库成功调用存储过程:

IList <XXXViewModel> XXXList = _context.Database.SqlQuery("spXXX").ToList();

但是当我需要传递参数时,它失败了:

var parameters = new List<SqlParameter>();
parameters.Add(new SqlParameter("param1", param1Value));
parameters.Add(new SqlParameter("param2", param2Value));
IList<XXXViewModel> XXXList =
_context.Database.SqlQuery<XXXViewModel>("spXXX @param1, @param2", parameters).ToList();
Run Code Online (Sandbox Code Playgroud)

我得到了ff,错误:

从对象类型System.Collections.Generic.List`1 [[System.Data.SqlClient.SqlParameter,System.Data,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]到已知的托管提供者本机不存在映射类型.

请注意,我也尝试过:

_context.Database.ExecuteSqlCommand<EXEC XXXViewModel>("spXXX @param1, @param2", parameters).ToList();
Run Code Online (Sandbox Code Playgroud)

但得到了相同的结果:-(.

我也尝试通过指定每个参数来调用:

IList<XXXResult> query = Context.Database.SqlQuery<XXXResult>("SP @paramA, @paramB, @paramC", new SqlParameter("paramA", "A"), new SqlParameter("paramB", "B"), new SqlParameter("paramC", "C")).ToList();
Run Code Online (Sandbox Code Playgroud)

任何人有任何想法?

entity-framework ef-code-first entity-framework-4.1

27
推荐指数
3
解决办法
3万
查看次数