Tag: dapper

使用dapper,为什么在一次使用连接时创建的临时表在第二次使用同一连接时不可用

我正在尝试使用C#中的dapper执行一系列SQL * Server步骤。 一步创建一个临时表并填充它。 以下步骤从临时表中查询数据。 create / populate似乎运行成功,但temp表中的第一个查询失败说: “无效的对象名称’#GetPageOfGlobalUsers’。” using (SqlConnection connection = DBConnectionProvider.CreateConnection()) { … misc setup stuff… connection.Execute(@” create table #GetPageOfGlobalUsers(row int, EmailAddress nvarchar(max), LastName nvarchar(max), FirstName nvarchar(max), Id uniqueidentifier) insert into #GetPageOfGlobalUsers SELECT ROW_NUMBER() OVER (order by LastName, FirstName, EmailAddress) row, EmailAddress, LastName, FirstName, Id FROM Users WHERE LastName like @search or […]

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

我有一个标准代码: public IEnumerable ExperimentSelect(object parameters) { using (var connection = new SqlConnection(ConnectionString)) { connection.Open(); var dynamicparam = new DynamicParameters(parameters); var rows = connection.Query(“[dbo].[ptbSapOrderSelect]”, dynamicparam, commandType: CommandType.StoredProcedure); if (rows.Any()) TotalRows = ((long)rows.ToList()[0].TotalRows); return rows; } } 如何使用例如NLog自动将Dapper生成的查询保存到文件中? 我正在考虑获取SQL查询源中显示的SQL查询源。

如何让Dapper将.net日期时间映射到datetime2?

很简单,我正在将我们现有的系统从EF转换为Dapper。 由于各种公司原因,我们无法真正更改数据库,某些表具有DateTime2类型的列。 Dapper将任何.net DateTime转换为DbType.DateTime。 有人必须先遇到这种情况并找到一个简单的解决方案吗?

Dapper是否适用于Mono?

我们正在考虑转移到Mono ,我发现Dapper可以使用MySql。 但是,这是使用ADO.NET提供程序。 Mono / Linux是否有MySql ADO.NET提供程序并且与Dapper一起使用? 最终我们计划将我们当前的站点从MySql迁移到PostgreSql,我也想知道同样的问题,还有Linux上的PostrgreSql,Mono和Dapper的内容?

Dapper抛出“DynamicMethod的无效类型所有者”。

所以我正在尝试使用Dapper.net,我很喜欢它。 我不喜欢的是当我尝试批量插入实体时,我得到以下错误抛出: DynamicMethod的类型所有者无效。 在System.Reflection.Eynamic.DynamicMethod.Init(String name,MethodAttributes属性,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 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.d__61 Dapper.SqlMapper.CreateParamInfoGenerator(Identity identity,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, […]

带有参数列表的Dapper查询

我试图用Dapper运行一个带有一组已知参数的查询,但是带有这些参数的值列表。 我想要做的一个简单例子是: DateTime endDate = DateTime.Now; DateTime startDate = endDate.AddHours(-24); string query = “select COUNT(*) from Test where Status = @Status AND DateCreated new { Status = 1, Hour = hour, })); Dapper抛出一个exception’参数’@Status’必须定义’。 我知道Dapper在进行批量插入和更新时可以处理参数列表,但是它不能用于选择吗?

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

我有一个场景,其中C#中的字符串可以为null 。 我需要它在SQLServer上为NULL 。 我正在使用Dapper将其发送到SQLServer,其查询如下: connection.Query(“[dbo].[sp_MyStoredProcedure]”), new { StartDate: startDate }, commandType: CommandType.StoredProcedure); 其中startDate是有时可以等于null的字符串。 存储过程的参数是 @StartDate varchar(10) = NULL 当它为NULL它返回所有记录。 我已经确认这种行为可以通过SSMS实现。 我读过Marc Gravell的这篇文章说: null vs DBNull问题是混淆的常见原因; 但是, 通常如果人们在C#中声明为null ,则他们在SQL中打算使用null 。 这是小巧玲珑采用的方法。 这让我相信当string设置为null ,它应该将DBNull.Value发送到SQLServer。 但是,情况似乎并非如此。 我在发送null字符串时从SQLServer返回0条记录。 这似乎表示发送一个空字符串,而不是DBNull.Value 。 另外,我无法直接发送DBNull.Value : connection.Query(“[dbo].[sp_MyStoredProcedure]”), new { StartDate: DBNull.Value }, commandType: CommandType.StoredProcedure); 这会在Dapper中产生exception: System.DBNull类型的成员StartDate不能用作参数值 题 当我在C#中有一个可以为null的string时,如何使用Dapper将NULL发送到SQLServer? 重要 当字符串为null时,Dapper确实发送NULL 。 基于错误的信息,这个假设是我的错误。 […]

如何使用Dapper .Net进行SQL批量复制?

我正在使用Dapper .net在SQL表中进行批量插入操作。 我想用Dapper .Net用户SQKBulk副本但没有任何经验如何使用Dapper .Net使用SqlbulkCopy 非常感谢您的帮助

通过存储过程将数据列表返回给dapper

我试图通过存储过程使用Dapper返回数据 我的DTO类与下面类似(为简洁起见,删除了一些属性) public class CarDTO { public int CarID { get; set; } public string Manufacturer { get; set; } public List CarOptions { get; set; } } 所以基本上在DB中我有一个CarOption表,它有一个CarID列 – 即Car可以有很多选项。 我分钟的DAL层呼叫如下: private string getCarDataSp = “[dbo].[GetCarData]”; public IEnumerable GetCarData(int customerId, int year) { return Get(db => db.Query(getCarDataSp , new { CustomerID = customerId, Year […]

小巧玲珑的空间地理类型

我正在编写一些空间示例,并决定给Dapper一个机会,虽然EF有空间支持,我很想再次控制我的SQL(感谢Sam和Marc)。 但是,我需要能够拥有支持DbGeography类的POCO。 例如 : public class BuriedTreasure { public int PirateId { get; set; } public DbGeography MarksTheSpot { get; set; } } 我的谷歌foo一直让我失望,我能找到的最接近的匹配是这个问题,虽然它只是为了增加空间支持作为参数(所以它在那里是50%)。 现在,据我所知,我仅限于以下选项,对我来说这两种选择都不是一个可行的解决方案。 自定义dapper代码以了解SQL Server特定类型 在我的POCO中指定LONG,LAT和ELEVATION小数,并在我的存储过程中创建SPATIAL类型,并有另一个过程来检索值(或使用持久计算列,但几乎相同) 备择方案?