草庐IT

c# - 不使用匿名对象时 Dapper 动态参数抛出 SQLException "must define scalar variable"

(此代码使用C#中的DapperDotNet)此代码有效:varcommand="UPDATEaccountSETpriority_id=@PriorityWHEREname=@Name";connection_.Execute(command,new{Name="myname",Priority=10});此代码抛出一个SqlException:classMyAccount{publicstringName;publicintPriority;}varcommand="UPDATEaccountSETpriority_id=@PriorityWHEREname=@Name";vara

c# - 将 BeginTransaction 与 Dapper.IDbConnection 一起使用的正确方法

在Dapper中使用BeginTransaction()和IDbConnection的正确方法是什么?我创建了一个方法,我必须在其中使用BeginTransaction()。这是代码。using(IDbConnectioncn=DBConnection){varoTransaction=cn.BeginTransaction();try{//SAVEBASICCONSULTDETAILvaroPara=newDynamicParameters();oPara.Add("@PatientID",iPatientID,dbType:DbType.Int32);..........blah.

c# - 为什么 Entity Framework 在直接 select 语句中比 Dapper 执行得更快

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭3年前。Improvethisquestion我刚开始使用ORM处理数据库,目前我正在制作一个新项目,我必须决定是使用EntityFramework还是Dapper。我读了很多文章说Dapper比EntityFramework更快。所以我做了2个简单的原型(prototype)项目,一个使用Dapper,另一个使用EntityFramework和一个函数来从一个表中获取所有行。表结构如下图两个项目的代码如下对于Dapper项目System.Diagn

c# - 使用 Dapper 填充枚举属性

在使用Dapper的Query()函数时,我试图填充一个具有枚举值属性的类。在我的数据库中,此列存储为一个字节。但是,在类里面,它们是一个枚举。在旧的ADO.NET方法中,我会在读取器循环期间进行转换:myClass.myEnum=(MyEnumType)reader.GetByte(2);在使用Dapper时,我不知道如何进行这种转换。例如当我做类似的事情时myClass=conn.Query("SELECT...")我得到一个类型的错误Errorparsingcolumn2(myEnum=1-Byte)有没有办法使用Dapper的Query()来填充包含枚举类型属性的类?

c# - 插入带有 Dapper 的 IEnumerable<T> 集合时出现 "class is not supported by Dapper."错误

是的,有questionshere和here关于如何使用dapper-dot-net插入记录。然而,答案虽然内容丰富,但似乎并没有为我指明正确的方向。情况是这样的:将数据从SqlServer移动到MySql。将记录读入IEnumerable很简单,但我只是没有得到插入物上的东西。一、'移动记录代码'://movingdataDimsessionAsNewSession(DataProvider.MSSql,"server",_"database")DimresourcesAsList(OfWTUser)=session.QueryReader(OfWTUser)("select*fro

c# - 如何使用 Dapper ORM 返回动态类型 List<dynamic>

我已经使用Dapper.net一段时间了,它是一个非常好的ORM映射器,非常适合.Net动态类型。但我注意到,当Dapper从数据库中检索数据时,它返回的是DapperRow类型。有什么方法可以让我以任何其他类型返回它,例如System.Dynamic.ExpandoObject? 最佳答案 当然可以!根据dapper文档,使用查询方法并获取动态:dynamicaccount=conn.Query(@"SELECTName,Address,CountryFROMAccountWHEREId=@Id",new{Id=Id}).Firs

c# - 为什么 Dapper 的 .Execute(...) 返回一个 int?

有人知道为什么Dapper从.Execute(...)返回一个int吗?我在任何地方都找不到这个记录。 最佳答案 整数表示受查询影响的行数。它返回一个整数,以便您知道您的查询是否有效。如果返回零并且您预计会发生一些变化,那么您就知道有问题了。 关于c#-为什么Dapper的.Execute(...)返回一个int?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/33436818/

c# - 如何使用 Dapper Dot Net 从数据库结果映射到 Dictionary 对象?

如果我有一个简单的查询,例如:stringsql="SELECTUniqueString,IDFROMTable";我想将它映射到字典对象,例如:DictionarymyDictionary=newDictionary();我如何使用Dapper做到这一点?我假设它是这样的:myDictionary=conn.Query(sql,new{}).ToDictionary();但是想不出正确的语法。 最佳答案 已经展示了多种方式;我个人只会使用非通用api:vardict=conn.Query(sql,args).ToDictionar

c# - 如何在 .NET 中使用 Dapper 处理数据库连接?

我一直在玩Dapper,但我不确定处理数据库连接的最佳方式。大多数示例显示了在示例类中甚至在每个方法中创建的连接对象。但是我觉得在每个clss中引用一个连接字符串是不对的,即使它是从web.config中提取的。我的经验是将DbDataContext或DbContext与LinqtoSQL或EntityFramework一起使用,所以这对我来说是新的。当使用Dapper作为我的数据访问策略时,我该如何构建我的网络应用程序? 最佳答案 更新:MarredCheese评论的澄清:"Noneedtouseausingstatement.D

c# - 在 Dapper.NET 中调整 CommandTimeout?

我正在尝试通过Dapper通过存储过程运行SQL备份(我的应用程序的其余部分使用Dapper,所以我更愿意让这部分也通过它运行)。在CommandTimeout启动之前,它工作正常。using(varc=SqlConnection(connstring)){c.Open();varp=newDynamicParameters();//filloutpc.Execute("xp_backup_database",p,commandType:CommandType.StoredProcedure);}我所知道的唯一CommandTimeout设置是在SqlCommand中。有没有办法通过D