- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
所以我正在尝试使用 Dapper.net,而且我很喜欢它。我不喜欢的是当我尝试批量插入实体时抛出以下错误:
DynamicMethod 的类型所有者无效。
at System.Reflection.Emit.DynamicMethod.Init(String name, MethodAttributes attributes, CallingConventions callingConvention, Type returnType, Type[] signature, Type owner, Module m, Boolean skipVisibility, Boolean transparentMethod, StackCrawlMark& stackMark) at System.Reflection.Emit.DynamicMethod..ctor(String name, Type returnType, Type[] parameterTypes, Type owner, Boolean skipVisibility) at Dapper.SqlMapper.CreateParamInfoGenerator(Identity identity, Boolean checkForDuplicates, Boolean removeUnused, IList
1 literals) in
1.MoveNext() in D:\Dev\dapper-dot-net\Dapper NET40\SqlMapper.cs:line 1578 at System.Collections.Generic.List
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__611..ctor(IEnumerable
1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source) at
1 commandTimeout, Nullable
Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param,
IDbTransaction transaction, Boolean buffered, Nullable1 commandType) in
1 commandTimeout, Nullable
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, Nullable1 commandType) in
1.b__3(SqlConnection sqlConnection, SqlTransaction transaction) in c:\Projects\InHouse\ninjaevaluation\NinjaEvaluation\NinjaEvaluation.Data\Database\DapperWrapper.cs:line 52 at NinjaEvaluation.Data.Database.DapperWrapper.Invoke(Action`2 action) in c:\Projects\InHouse\ninjaevaluation\NinjaEvaluation\NinjaEvaluation.Data\Database\DapperWrapper.cs:line 68
D:\Dev\dapper-dot-net\Dapper NET40\SqlMapper.cs:line 1418 at
NinjaEvaluation.Data.Database.DapperWrapper.<>c__DisplayClass4
当我像这样运行查询时,这发生在完全正常的情况下:
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)
我找到了 the following SO-thread由遇到同样问题的人开始,但问题似乎是 .NET 版本 (3.5),但我运行的是 .NET 4.5,我无法弄清楚问题是什么。
有什么建议吗?
最佳答案
我在使用接口(interface)而不是类时遇到了这个错误:
Query<MyObject>
工作,同时 Query<IMyObject>
没有
关于c# - Dapper 抛出 "Invalid type owner for DynamicMethod.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30435185/
我想以某种方式找到我当前上下文中的所有 DynamicMethods,考虑我有以下方法和委托(delegate): public delegate double DivideInvoker(int a
如果我从类方法内部创建一个 DynamicMethod,我如何从 DynamicMethod Delegate 调用我的类的另一个方法?我需要以某种方式在 DynamicMethod 代码中捕获 th
我试图通过专门为该任务生成 IL 来提高项目中某段代码的性能。 此任务目前是通过对数组元素执行 for 循环并通过接口(interface)运行各种方法来完成的。我想用 IL 代替它,它专门执行此任务
我有以下代码 var dynamicAdd2 = new DynamicMethod("add", typeof(string), new[] { typeof(TestType) },
如何为具有 out 参数的委托(delegate)定义 DynamicMethod,就像这样? public delegate void TestDelegate(out Action a); 假设我
是否可以使用通用类型参数定义 DynamicMethod? MethodBuilder 类具有 DefineGenericParameters 方法。 DynamicMethod 有对应的方法吗?例如
有人可以解释或指出为什么在下面的示例中没有进行运行时类型检查吗?字符串属性可以设置为任何类型值... 在非常意想不到的地方坚持这一点,真的很惊讶 using System; using System.
Cecil中有类似Reflection.Emit.DynamicMethod的东西吗?谢谢。 动态方法 编辑: 下面的事情呢? EmitCall(例如 IL.EmitCall(OpCodes.Call
我在玩弄 DynamicMethod和 Expression Trees ' Compilation (在内部使用 DynamicMethod)。 然后我想知道是否有一种方法可以将自定义属性添加到生成
在 C# 4.0 中使用的优点是什么(除了语法) DynamicObject.TryInvokeMember(InvokeMemberBinder binder, object[] args, out
我的目标是在运行时创建一个委托(delegate),它可以将任何引用类型中的任何字段(包括 readonly)设置为用户指定的值。不幸的是,当包含类型的程序集指定 [AllowPartiallyTru
我正在通过在运行时使用 Reflection.Emit 创建自己的函数来学习 CIL。实际上,我很惊讶到目前为止事情是多么容易,但我遇到了一些我无法猜测的事情,而且我在文档中找不到任何相关内容。 我正
我希望能够通过传递依赖于客户端代码的事件名称和操作来订阅任何对象的任何事件。我有以下代码 public static class EventSubscriber { public static
我正在尝试使用 DynamicMethod 调用类似 printf 的非托管函数。在运行时我得到一个 BadImageFormatException:Index not found. (Excepti
这是一个学习练习。我创建了一个采用 Foo 和字符串并设置 A 属性的方法。我使用 Reflector 反汇编来制作以下发射代码。反汇编看起来像这样: .method private hidebysi
这在文章 C# scripts using DynamicMethod 中有描述我看到的优点 - 第一次调用将比使用 CSharpCodeProvider 快得多。 这种方法有什么缺点? 最佳答案 刚
我正在查看 Joel Pobar 的 Dodge Common Performance Pitfalls to Craft Speedy Applications关于反射的文章,我正在查看一段未编译的
我正在使用 IL 生成创建一个简单的反序列化器方法,该方法从 Lucene 文档中提取字符串并设置引用类型对象 (POCO) 的属性或字段。 每当我尝试运行生成的方法时,我都会收到 Verificat
我有这个类(简化示例) public class Foo { public object Bar(Type type) { return new object();
考虑以下简单代码: using System; class Test { delegate int FooDelegate(int i); FooDelegate Foo = Fo
我是一名优秀的程序员,十分优秀!