jjzjj

c# - 如何读取 Dapper 生成的 SQL 查询?

我有一个标准代码:publicIEnumerableExperimentSelect(objectparameters){using(varconnection=newSqlConnection(ConnectionString)){connection.Open();vardynamicparam=newDynamicParameters(parameters);varrows=connection.Query("[dbo].[ptbSapOrderSelect]",dynamicparam,commandType:CommandType.StoredProcedure);if(ro

c# - 从抽象类引用继承的 EntitySet 的 dapper PropInfo Setter 为 null

我正在尝试用一些简洁的查询替换令人讨厌的LINQ2SQL命中以提高性能。这样做时,我必须将一堆不同的对象编织在一起,以创建保存ASN信息所需的所有信息所需的大对象。我目前遇到的问题是抽象类Orders,该类由两个单独的类AutionOrder和MerchantOrder使用鉴别器属性实现。由于我无法使用dapper创建抽象类对象,因此我改用其中一个公共(public)类。但是,当它构建对象时,它在GetSettableProps内部失败,它找到了正确的DeclaringType但是GetProperty方法在它返回null时正在寻找internal或EntitySet的属性。我尝试使用

c# - 使用存储过程从 Dapper.net 查询返回值

我正在尝试调用存储过程使用Dapper.Net并获取返回值。p.Add("@INCIDENT_ID",dbType:DbType.Int32,direction:ParameterDirection.ReturnValue);varretResults=con.Execute("usp_GetIncidentID",p,commandType:CommandType.StoredProcedure);intIncidentID=p.Get("INCIDENT_ID");我在参数方向和使用"@INCIDENT_ID"方面尝试了几种不同的方法。如果逐步查看结果,您会看到retResults

c# - Dapper 示例代码的说明

我正在尝试理解Dapper并且似乎遗漏了一些非常基本的东西,有人可以解释从Google代码上的Dapper主页获取的以下代码并解释为什么没有From子句和查询的第二个参数方法(动态)传递了一个匿名类型,我认为这是在以某种方式设置一个命令对象,但我想用普通术语进行解释。谢谢,斯蒂芬publicclassDog{publicint?Age{get;set;}publicGuidId{get;set;}publicstringName{get;set;}publicfloat?Weight{get;set;}publicintIgnoredProperty{get{return1;}}}va

c# - 将 Dapper 与 Oracle 结合使用

我们使用Oracle作为我们的数据库供应商,并研究了用底层使用Dapper的更健全的基于存储库的模式替换我们的一些数据访问层(难以维护,更难合并XSD)。但是,我们在将它与oracle一起使用时遇到了一些问题。命名参数:这些似乎被忽略,无论何时在查询中使用它们时,Oracle似乎都以它喜欢的任何顺序解释它们。SqlMapper返回正确命名的参数,它们只是在Oracle中没有被正确解释变量的“@”命名约定与oracle命名参数不兼容。它期望在任何参数前面看到“:”有没有人以前遇到过这个问题并且有任何解决方法? 最佳答案 IMO,这里正

c# - Dapper 可以默认使用 AnsiStrings 吗?

我在数据库中使用Dapper,其中字符串主要存储在VarChar列中。默认情况下,Dapper在生成查询时使用NVarChar参数,虽然我可以用DbString包装我使用的每个字符串参数,但默认情况下使用AnsiStrings并使用DbString用于NVarChar情况。我尝试将Dapper源代码中的类型映射从DbType.String更改为DbType.AnsiString但这似乎会导致IL生成错误参数委托(delegate)(抛出InvalidProgramException)。有更简单的方法吗?更新仅仅改变typeMap是不够的,我还需要改变一些if(dbType==DbTyp

c# - 我可以从 Dapper 查询返回多个派生类型的集合吗

我有一个类似这样的类结构:publicabstractclassDevice{publicintDeviceId{get;set;}//AdditionalProperties}publicclassDeviceA:Device{//SpecificBehaviour}publicclassDeviceB:Device{//SpecificBehaviour}我需要检索设备列表,或实例化为适当派生类型的单个设备(基于数据库中设备记录中的类型值)。也就是说,Device对象的集合应该包含许多具有不同类型的对象,所有这些对象都派生自Device。我已经通过以下方式实现了这一点,但总觉得有些

c# - Dapper UpdateAsync 忽略列

我正在尝试使用Dapper.Contrib更新此表:publicclassMyTable{publicintID{get;set;}publicintSomeColumn1{get;set;}publicintSomeColumn2{get;set;}publicintCreateUserID{get;set;}publicintUpdateUserID{get;set;}}我不想更新CreateUserID列,因为它是一种更新方法,因此我想在调用Dapper-Update.Async(entity)方法时忽略此列。我尝试使用[NotMapped]和[UpdateIgnore]属性但没

c# - 如何使用 Dapper 将字符串作为 NULL 发送到 SQLServer?

我有一个场景,其中C#中的字符串可以是null。我需要它在SQLServer上为NULL。我使用Dapper将其发送到SQLServer,查询如下:connection.Query("[dbo].[sp_MyStoredProcedure]"),new{StartDate:startDate},commandType:CommandType.StoredProcedure);其中startDate是有时可以等于null的字符串。存储过程的参数是@StartDatevarchar(10)=NULL当它为NULL时,它返回所有记录。我已通过SSMS确认此行为有效。我读了thispostMa

c# - 从 dapper 调用存储过程,它接受用户定义的表类型列表

我有一个存储过程InsertCars它接受用户定义的表类型列表CarType.CREATETYPEdbo.CarTypeASTABLE(CARIDintnull,CARNAMEvarchar(800)notnull,);CREATEPROCEDUREdbo.InsertCars@CarsASCarTypeREADONLYAS--RETURNCOUNTOFINSERTEDROWSEND我需要从Dapper调用这个存储过程。我用谷歌搜索并找到了一些解决方案。varparam=newDynamicParameters(new{CARID=66,CARNAME="Volvo"});varres