Questions tagged «dapper»

Dapper是Stack Overflow团队开发和使用的.NET微型ORM,主要目的是将原始性能作为目标。

9
使用Dapper ORM从X WHERE ID IN(…)中选择*
当IN子句的值列表来自业务逻辑时,使用Dapper ORM用IN子句编写查询的最佳方法是什么?例如,假设我有一个查询: SELECT * FROM SomeTable WHERE id IN (commaSeparatedListOfIDs) 在commaSeparatedListOfIDs正在从业务逻辑传递,它可以是任何类型的IEnumerable(of Integer)。在这种情况下,我将如何构造查询?到目前为止,我是否必须做我基本上一直在做的事情,即基本上是字符串连接还是我不知道的某种高级参数映射技术?
231 .net  sql  dapper 

6
有没有一种方法可以使用Dapper调用存储过程?
Dapper Micro ORM对于stackoverflow.com 的结果给我留下了深刻的印象。我正在为我的新项目考虑它,但是我担心我的项目有时需要具有存储过程,并且我在网上进行了大量搜索,但没有找到任何有关存储过程的信息。那么,有什么方法可以使Dapper与存储过程一起工作? 请让我知道是否可能,否则我必须以自己的方式进行扩展。

6
使用Dapper执行插入和更新
我对使用Dapper感兴趣-但据我所知,它仅支持查询和执行。我看不到Dapper包含一种插入和更新对象的方法。 鉴于我们的项目(大多数项目?)需要进行插入和更新,与dapper一起进行插入和更新的最佳实践是什么? 最好我们不必诉诸于ADO.NET参数构建方法等。 此时,我能想到的最佳答案是使用LinqToSQL进行插入和更新。有更好的答案吗?
194 c#  orm  dapper 

15
手动映射具有类属性的列名
我是Dapper微型ORM的新手。到目前为止,我可以将其用于与ORM相关的简单内容,但无法将数据库列名称与类属性进行映射。 例如,我有以下数据库表: Table Name: Person person_id int first_name varchar(50) last_name varchar(50) 我有一个叫做Person的课: public class Person { public int PersonId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } 请注意,表中的列名与我尝试将查询结果中得到的数据映射到的类的属性名不同。 var sql = @"select top 1 PersonId,FirstName,LastName from Person"; using (var …
173 dapper 

7
如何执行插入并使用Dapper返回插入的身份?
如何执行插入到数据库并使用Dapper返回插入的身份? 我已经尝试过这样的事情: string sql = "DECLARE @ID int; " + "INSERT INTO [MyTable] ([Stuff]) VALUES (@Stuff); " + "SELECT @ID = SCOPE_IDENTITY()"; var id = connection.Query<int>(sql, new { Stuff = mystuff}).First(); 但这没有用。 @Marc Gravell谢谢您的答复。我已经尝试过您的解决方案,但是下面仍然有相同的异常跟踪 System.InvalidCastException: Specified cast is not valid at Dapper.SqlMapper.<QueryInternal>d__a`1.MoveNext() in (snip)\Dapper\SqlMapper.cs:line 610 at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 …
170 c#  sql-server  dapper 

7
如何使用Dapper映射嵌套对象列表
我目前正在使用Entity Framework进行数据库访问,但想看看Dapper。我有这样的课程: public class Course{ public string Title{get;set;} public IList<Location> Locations {get;set;} ... } public class Location{ public string Name {get;set;} ... } 因此,可以在多个位置教授一门课程。Entity Framework为我执行了映射,因此我的Course对象中填充了位置列表。我将如何使用Dapper做到这一点,甚至有可能还是我必须在几个查询步骤中做到这一点?
127 orm  dapper 

6
在Dapper中正确使用多重映射
我正在尝试使用dapper的Multimapping功能返回ProductItems和关联的Customer的列表。 [Table("Product")] public class ProductItem { public decimal ProductID { get; set; } public string ProductName { get; set; } public string AccountOpened { get; set; } public Customer Customer { get; set; } } public class Customer { public decimal CustomerId { get; set; } public string CustomerName { …
111 dapper 


4
在Dapper.NET中调整CommandTimeout?
我正在尝试通过Dapper通过存储过程运行SQL备份(我的应用程序的其余部分使用Dapper,因此我也希望通过它运行该部分)。直到CommandTimeout生效,它才能正常工作。 using (var c = SqlConnection(connstring)) { c.Open(); var p = new DynamicParameters(); // fill out p c.Execute("xp_backup_database", p, commandType: CommandType.StoredProcedure); } 我知道的唯一CommandTimeout设置在SqlCommand中。有没有一种方法可以通过Dapper进行设置?
92 c#  .net  timeout  dapper 

3
如何为Dapper查询动态创建参数
我有一个值字典,例如“ Name”:“ Alex” 有没有办法将其作为查询的参数传递给Dapper? 这是一个显示我想要做什么的示例。 IDictionary<string, string> args = GetArgsFromSomewhere(); string query = "select * from people where Name = @Name"; var stuff = connection.Query<ExtractionRecord>(query, args);
86 c#  .net  dapper 

9
如何在.NET中使用Dapper处理数据库连接?
我一直在与Dapper一起玩,但是我不确定处理数据库连接的最佳方法。 大多数示例显示在示例类甚至每个方法中创建的连接对象。但是我觉得在每个clss中引用一个连接字符串是错误的,即使它是从we​​b.config中提取的。 我的经验是对SQL或Entity Framework使用LinqDbDataContext或DbContext与Linq一起使用,因此这对我来说是新的。 将Dapper用作数据访问策略时,如何构造Web应用程序?
83 c#  .net  dapper 

8
多映射器创建对象层次结构
我一直在玩这个游戏,因为它看起来很像已记录的帖子/用户示例,但它略有不同,对我不起作用。 假定以下简化设置(联系人具有多个电话号码): public class Contact { public int ContactID { get; set; } public string ContactName { get; set; } public IEnumerable<Phone> Phones { get; set; } } public class Phone { public int PhoneId { get; set; } public int ContactID { get; set; } // foreign key public …

6
如何在Dapper.Net中编写一对多查询?
我已经编写了这段代码来设计一对多关系,但是它不起作用: using (var connection = new SqlConnection(connectionString)) { connection.Open(); IEnumerable<Store> stores = connection.Query<Store, IEnumerable<Employee>, Store> (@"Select Stores.Id as StoreId, Stores.Name, Employees.Id as EmployeeId, Employees.FirstName, Employees.LastName, Employees.StoreId from Store Stores INNER JOIN Employee Employees ON Stores.Id = Employees.StoreId", (a, s) => { a.Employees = s; return a; }, splitOn: "EmployeeId"); foreach …
80 c#  .net  dapper 

3
Dapper.NET和具有多个结果集的存储过程
有什么方法可以将Dapper.NET与返回多个结果集的存储过程一起使用? 就我而言,第一个结果集是单行单列;如果是,0则调用成功,第二个结果集将包含实际的数据行/列。(如果它不为零,则会发生错误,并且不会提供第二个结果集) 有机会使用Dapper.NET处理吗?到目前为止,我只回过单曲0,但仅此而已。 更新:好的,只要结果集没有。2是单个实体: Dapper.SqlMapper.GridReader reader = _conn.QueryMultiple("sprocname", dynParams, commandType: CommandType.StoredProcedure); int status = reader.Read<int>().FirstOrDefault(); MyEntityType resultObj = reader.Read<MyEntityType>().FirstOrDefault(); 现在,我还有另一个要求。 精致小巧的多映射(分裂从SQL Server返回到两个独立的实体单行)对于第二个结果集似乎不支持作为尚未(至少似乎没有成为过载.Read<T>,可以处理多重映射)。 如何将该行分为两个实体?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.