所以我正在尝试使用Dapper.net,我很喜欢它。我不喜欢的是当我尝试批量插入实体时,我得到以下错误抛出:
DynamicMethod的类型所有者无效。
在System.Reflection.Emit.DynamicMethod.Init(String name, MethodAttributes属性,CallingConventions callingConvention, 键入returnType,类型[]签名,类型所有者,模块m,布尔值 skipVisibility,Boolean transparentMethod,StackCrawlMark&stackMark) 在System.Reflection.Emit.DynamicMethod..ctor(String name,Type returnType,Type [] parameterTypes,Type owner,Boolean skipVisibility) 在Dapper.SqlMapper.CreateParamInfoGenerator(身份标识, Boolean checkForDuplicates,Boolean removeUnused,IList
1 literals) in D:\Dev\dapper-dot-net\Dapper NET40\SqlMapper.cs:line 3033 at Dapper.SqlMapper.GetCacheInfo(Identity identity, Object exampleParameters, Boolean addToCache) in D:\Dev\dapper-dot-net\Dapper NET40\SqlMapper.cs:line 2138 at Dapper.SqlMapper.<QueryImpl>d__61
1.MoveNext()in D:\ Dev \ dapper-dot-net \ Dapper NET40 \ SqlMapper.cs:1578行at System.Collections.Generic.List1..ctor(IEnumerable
1个收藏)
在System.Linq.Enumerable.ToList [TSource](IEnumerable1 source) at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable
1 commandTimeout,Nullable1 commandType) in D:\Dev\dapper-dot-net\Dapper NET40\SqlMapper.cs:line 1479 at Dapper.SqlMapper.Query(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable
1 commandTimeout,Nullable1 commandType) in D:\Dev\dapper-dot-net\Dapper NET40\SqlMapper.cs:line 1418 at NinjaEvaluation.Data.Database.DapperWrapper.<>c__DisplayClass4
1.b__3(的SqlConnection sqlConnection,SqlTransaction事务)中 C:\项目\点播服务\ ninjaevaluation \ NinjaEvaluation \ NinjaEvaluation.Data \数据库\ DapperWrapper.cs:线 52在NinjaEvaluation.Data.Database.DapperWrapper.Invoke(Action`2 行动) C:\项目\点播服务\ ninjaevaluation \ NinjaEvaluation \ NinjaEvaluation.Data \数据库\ DapperWrapper.cs:线 68
当我运行我的查询时,这种情况发生在完全正常的情况:
string sql = @" INSERT INTO XXX
(XXXId, AnotherId, ThirdId, Value, Comment)
VALUES
(@XXXId, @AnotherId, @ThirdId, @Value, @Comment)";
var parameters = command
.MyModels
.Select(model => new
{
XXXId= model.XXXId,
AnotherId= model.AnotherId,
ThirdId= model.ThirdId,
Value = model.Value,
Comment = model.Comment
})
.ToArray();
...
sqlConnection.Query(sql, parameters, commandType: commandType, transaction: transaction)
我发现 以下SO线程 由有同样问题的人开始,但问题似乎是.NET版本(3.5),但我运行的是.NET 4.5,我无法弄清楚问题是什么。
有什么建议么?