我在我的一些类型中使用Dapper扩展,它在大多数用例中工作得很好。我遇到过这样一种情况,我有很多种关系,我想做这样的事情:-
SELECT id,a,b,c FROM Foo WHERE Foo.id in (SELECT foo_id FROM foo-bar WHERE bar-id=@bar_id)
显然,Dapper扩展可以从Foo处理"SELECT id,a,b,c“,但不能处理后一部分。我可以做一个选择来获得我想要的Foo id的列表,然后将它传递给Dapper扩展,但是效率不高。
我不能用平原Dapper自动获得SELECT列列表,所以我真正想要的是:-
从Dapp
我使用dapper.rainbow将一条记录插入到MSSQL数据库中。以下是我的代码
int? id = db.RoomTypes.Insert(roomType)
当我运行我的应用程序时,我得到了下面的异常。
Cannot insert explicit value for identity column in table 'RoomTypes'
when IDENTITY_INSERT is set to OFF.
我认为dapper.rainbow在插入期间使用了我的Identity列的值(int的默认值)。这就是导致这个异常的原因。表RoomTypes的identi
我试图通过存储的proc使用Dapper返回数据。
我的DTO类类似于下面(为了简洁起见删除了一些属性)
public class CarDTO
{
public int CarID { get; set; }
public string Manufacturer { get; set; }
public List<CarOptionDTO> CarOptions { get; set; }
}
基本上,在DB中,我有一个CarOption表,它有一个CarID列,也就是说,一辆汽车可以有很多选项。
我的DAL层呼叫在分钟如下:
private st
我刚刚开始使用Dapper.Contrib来帮助我进行插入和获取,但是由于我的枚举是以字符串的形式存储在数据库中(出于几个原因),所以我在使用插入时遇到了麻烦。Dapper在读取时无缝地使用字符串枚举,但插入总是将序数值放入数据库中。
我读了很多关于Dapper的建议,有相当多的问题打开了,但没有找到一个有效的解决方案。我的简化类如下所示:
public class Person {
public long Id { get; set; }
public string Name { get; set; }
public Gender Gender { get; set; }
}
我目前正在使用实体框架来访问我的数据库,但我想看看Dapper。我有这样的类:
public class Course{
public string Title{get;set;}
public IList<Location> Locations {get;set;}
...
}
public class Location{
public string Name {get;set;}
...
}
因此,一门课程可以在多个地点授课。实体框架会为我进行映射,因此我的课程对象会填充一个位置列表。我该如何使用Dapper来做这件事,这是可能的,还是我必须在几
我想使用dapper从数据库中查询一个复杂的实体。
例如。职务是我要查询的顶层实体。
public class Job
{
public User User { get; set; }
}
public class Account
{
}
public class Roles
{
public IList<Schedule> Schedules { get; set; }
}
public class Devices
{
public IList<Roles> Roles { get; set; }
public IList<
我在SQL Server中有两个表,如下所示:
Table1
int Id
varchar(32) Name
varchar(256) Description
Table2
int LeftKey
int RightKey
我在C#应用程序中有两个类,如下所示:
MyClass
Name
Description
Match
MyClass Left
MyClass Right
我想要做的是创建一个Dapper查询,它将选择Table2中的所有行,连接到Table1 (*Key->Id),并生成一个相应地设置了Le
下面是我要做的一个截断的例子: var stuffTOSave = new List<SomeObject> {
public int OtherTableId { get; set; }
public List<Guid> ComponentIds { get; set; }
};
var sql = @"CREATE TABLE Components( ComponentId uniqueidentifier PRIMARY KEY )
INSERT INTO Components VALUES (@WhatGoesHere?)
SEL
如何使用Dapper检索此对象?例如:
public class ClassA
{
public int Id { get; set; }
public string Text { get; set; }
public ClassB b { get; set; }
public ClassC c { get; set; }
public ClassD d { get; set; }
public ClassE e { get; set; }
public ClassF f { get; set; }
}
public class Cl
在工作中,我们正在考虑使用Dapper。在现有的代码库中,我们的主/详细对象是单独加载的。通常,这意味着对所有主记录执行一条sql语句,对每条详细记录执行一条sql语句。
为了提高性能和简化转换,我想使用Dapper进行两次调用,并将结果缝合在一起:
public class Zoo
{
Guid Id { get; set; }
string Name { get; set;}
IList<Monkey> Monkeys { get; set; }
}
public class Monkey
{
Guid Id { get; set; }
我正在尝试映射Category实体中的Products列表和CategoryPictures属性。 然后在CategoryPictures中映射图片对象。 我不确定这是否是使用dapper的有效方式,因为我是第一次使用dapper。我曾经使用过entityframework。 我正在使用Dapper而不是EF,因为我想提高我的sql技能。 我应该使用多个结果来代替吗? public async Task<IEnumerable<Category>> GetCategoriesListAsync()
{
using (var conn = S
我试图了解如何使用Dapper对返回多个结果集的PostgreSQL函数进行调用。我的理解是,在PostgreSQL中,最好的(只有?)目前实现这一目标的方法是声明函数RETURNS SETOF REFCURSOR。
返回多个PostgreSQL的示例REFCURSOR函数
CREATE OR REPLACE FUNCTION public.testmultiplerefcursorfunc()
RETURNS SETOF REFCURSOR
LANGUAGE 'plpgsql'
STABLE
AS $BODY$
DECLARE
ref1
我正在为一个项目进行DB操作,并开发WinForms应用程序C#,我使用Dapper从DB中获取数据,我陷入了需要使用内部连接检索数据的情况。例如:我有两个表,作者和书如下:
public class Authors
{
public int AuthorId { get; set; }
public string AuthorName { get; set; }
}
public class Book
{
public int BookId { get; set; }
public string AuthorId { get; set; }
publi
我是.netcore的新手,并试图在一些db交互中使用dapper。dapper不适用于.net核心3吗?或者我是不是做错了什么:X
我创建了一个新的.net项目:
dotnet new mvc
试着添加达普
dotnet add package Dapper --version 2.0.30
然后我得到了错误:
info : Adding PackageReference for package 'Dapper' into project
C:\repos\dapper\dapper.csproj'.
info : Restoring packages for
我正在使用SQL Server和Dapper,我想将我的模型对象正确地存储到数据库中并检索它们。
这是我的模型,guid列表是其他模型‘生成器’ID的列表。
public class GeneratorSet
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public List<Guid> GeneratorsList { get; set; }
}
我的目标是正确地将这个对象映射到SQL
我尝试使用Dapper运行一个查询,其中包含一组已知的参数,但包含这些参数的值列表。我想要做的一个简单的例子是:
DateTime endDate = DateTime.Now;
DateTime startDate = endDate.AddHours(-24);
string query = "select COUNT(*) from Test where Status = @Status AND DateCreated <= @Hour;";
var stuff = con.Query(query, (startDate).ByHourTo(endDate).Se
我使用Dapper从SQL中进行查询,并具有如下动态查询:
var returns = conn.Query(dynamicQuery);
然后,当我循环浏览结果时,我想找出我正在处理的日期类型是什么,因此我尝试执行以下操作:
foreach (var result in results)
{
MessageBox.Show(result.GetType().ToString());
}
但它总是在MessageBox上失败,并显示错误Cannot perform runtime binding on a null reference。
如果我使用下面的代码:
var returns
我想使用Dapper,而不是使用正常的过程来映射数据。我已经看过这些文档并有了一些想法,但我很难掌握它的诀窍。
这是我的控制器代码,无需使用dapper从postgres表列获取数据并将其映射到transactionLists:
public IActionResult Index()
{
using var conn = new NpgsqlConnection(connString);
conn.Open();
using var command = new NpgsqlCommand(null, conn);
command.CommandText
当我执行以下代码时,我得到了一个NullReferenceException:
var insertTransaction = @"INSERT INTO [192.168.1.55].databaseName.dbo.tableName
(Date, Desc)
VALUES(GETDATE(),
@Description)
SELECT Scope_identity()";
var result = _sqlMapper.Query<int>(insertTransaction,
new
{
给出一个简单的测试:
使用Dapper:
for (int i = 0; i < 10000; i++)
{
Connection.Execute("UPDATE User SET Name = 'Max'");
}
此操作的持续时间如下所示,用StopWatch度量
RunTime 00:00:37.51持续时间: 00:00:37.5150734
使用Dapper的:
User user = new User();
user.Name = "Max";
DapperPlusManager.Entity<User
我们在应用程序中使用Dapper和Dapper.Contrib。我们选择Dapper是因为它更快,速度是我们的一切,因为沉重的负荷。现在看来,“字段的变更跟踪”对我们来说是至关重要的。现在,Dapper.Contrib创建update查询,它总是设置所有字段,这样的查询会使它们更慢。有些表现在有30列,并且完全更新行,因为这些表效率很低。
正如我所看到的,Dapper.Contrib有Change tracking per object,但是Change tracking per field没有引入到库中。
我做了一项非常仔细的研究,发现在这方面没有做任何工作。那个倒霉的研究把我搞糊涂了。我想
我曾经使用Entity Framework,但最近转到了Dapper。我喜欢EF的一个特性是我可以给一个对象一个属性来告诉它,这就是你要找的列。
例如:
[JsonProperty(PropertyName = "USER_CODE")]
public int ID {get;set;}
Dapper使用ID读取数据库,但我可以看到对象是Dapper。
有人知道这样的事情在DAPPER中是否可能发生吗?
我正在尝试使用Dapper和postgres执行以下操作。
我得到了所有的图像,其中嵌套了每个模型的注释,但投票总数始终为0。我认为这是Dapper中的映射问题,就像我在PGAdmin中手动运行SQL一样,它会正确返回。
模型:
public class Image
{
public int Id { get; set; }
public string Url { get; set; }
public DateTime DateTaken { get; set; }
public virtual List<Comment> Comments { ge
我已经将Hangfire源代码从Github导入到我现有的VS 2013解决方案中。当我试图在我的解决方案中构建所有项目时,我会遇到以下几个错误:
Error 6 The type or namespace name 'Dapper' could not be found (are you missing a using directive or an assembly reference?) C:\Users\Jerry_Dev\Documents\GitHub\Hangfire\src\Hangfire.SqlServer\SqlServerDistribut
这个SqlBuilder:
var builder = new SqlBuilder();
var sql = builder.AddTemplate( /*...
非常愚蠢的问题,但是,我该如何使用这个呢?我知道它在Dapper.Contrib中,但是using语句是不够的。我需要添加哪些引用或其他using语句?