标签: dapper

使用Dapper获取DateTime作为UTC

我正在使用Dapper将我的实体映射到SQL Server CE.如果我保存DateTimeKind=Utc,当我读回我得到一个DateTimeKind=Unspecified,从而导致所有类型的问题.

例:

var f = new Foo { Id = 42, ModificationDate = DateTime.UtcNow };
Console.WriteLine("{0} ({1})", f.ModificationDate, f.ModificationDate.Kind);
connection.Execute("insert into Foo(Id, ModificationDate) values(@Id, @ModificationDate)", f);
var f2 = connection.Query<Foo>("select * from Foo where Id = @Id", f).Single();
Console.WriteLine("{0} ({1})", f2.ModificationDate, f2.ModificationDate.Kind);
Run Code Online (Sandbox Code Playgroud)

此代码提供以下输出:

20/09/2012 10:04:16 (Utc)
20/09/2012 10:04:16 (Unspecified)
Run Code Online (Sandbox Code Playgroud)

我知道我应该使用a DateTimeOffset,但遗憾的是SQL CE不支持这种类型.

有解决方法吗?我可以告诉Dapper假设所有日期都有DateTimeKind.Utc吗?更一般地说,我有哪些自定义映射的选项?


编辑:我目前的解决方法是修补Dapper实现结果后的日期,但它有点气味......

var results = _connection.Query<Foo>(sql, param).Select(PatchDate);

...

static Foo PatchDate(Foo f)
{
    if (f.ModificationDate.Kind …
Run Code Online (Sandbox Code Playgroud)

.net c# orm utc dapper

55
推荐指数
3
解决办法
2万
查看次数

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

如果我有一个简单的查询,例如:

string sql = "SELECT UniqueString, ID  FROM Table";
Run Code Online (Sandbox Code Playgroud)

我想将它映射到字典对象,例如:

Dictionary<string, int> myDictionary = new Dictionary<string, int>();      
Run Code Online (Sandbox Code Playgroud)

我怎么用Dapper这样做?

我假设它是这样的:

myDictionary = conn.Query<string, int>(sql, new {  }).ToDictionary();
Run Code Online (Sandbox Code Playgroud)

但无法弄清楚正确的语法.

c# asp.net dapper

55
推荐指数
6
解决办法
4万
查看次数

使用Dapper.NET在一次往返中使用多个SQL语句

ADO.NET中有一个很好的功能,允许您在一次往返中将多个SQL语句发送到数据库,并接收所有语句的结果:

var command = new SqlCommand("SELECT count(*) FROM TableA; SELECT count(*) FROM TableB;", connection);

using(var reader = command.ExecuteReader())
{
    reader.Read();
    resultA = reader.GetInt32(0);
    reader.NextResult();
    reader.Read();
    resultB = reader.GetInt32(0);
}
Run Code Online (Sandbox Code Playgroud)

Dapper.NET中是否有类似的功能?

.net c# sql sql-server dapper

52
推荐指数
2
解决办法
4万
查看次数

小巧玲珑.分页

我正在尝试Dapper ORM,我正在查询帖子表.

但我想获得分页结果......

1 - 我该怎么做?这不是帮手吗?

2 - Dapper Query可以返回IQueryable吗?

谢谢你,米格尔

paging dapper

47
推荐指数
3
解决办法
3万
查看次数

Dapper&TransactionScope?

我刚开始玩Dapper.到目前为止,我喜欢它.小巧玲珑不适用TransactionScope吗?我注意到,即使我从不打电话,TransactionScope.Complete我的更改仍然会提交到数据库.如果现在不支持TransactionScope,是否有任何计划支持它?如果没有那么你必须使用传统的事务管理(System.Transactions.Transaction)?

更新:我刚刚通过Twitter与Sam谈过.它应该工作.我将在明天上午(工作中)更新它的详细信息,看看是否有人可以弄清楚为什么我的更改仍然被提交到数据库,即使我从未调用完成.

transactionscope dapper

46
推荐指数
1
解决办法
2万
查看次数

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

任何人都知道为什么Dapper从中返回一个int .Execute(...)

我无法在任何地方找到这个记录.

c# sql-server dapper

42
推荐指数
2
解决办法
2万
查看次数

缓冲参数在Dapper dot net中做了什么?

Dapper dot net有一个buffer参数(bool),但据我所知,它唯一能做的就是在返回之前将结果转换为列表.

根据文件:

Dapper的默认行为是执行你的sql并在返回时缓冲整个读者.在大多数情况下,这是理想的,因为它最大限度地减少了数据库中的共享锁,并减少了数据库网络时间.

但是,在执行大量查询时,您可能需要最小化内存占用并仅根据需要加载对象.为此,在Query方法中传递,缓冲:false.

我不确定如何将结果转换为列表来实现此目的.我错过了什么吗?我唯一的想法是它应该设置CommandBehaviorExecuteReaderto CommandBehavior.SequentialAccess(但它没有).

.net sqldatareader dapper

41
推荐指数
2
解决办法
8583
查看次数

最新的Dapper VS Entity Framework 6性能考虑因素

Dapper(这似乎是最快,最流行的"微型ORM工具")之间存在一些性能比较.现在是2014年9月,我们有实体框架6(不是5或4),Dapper仍然存在.

我们将开始开发一个庞大的数据库n层应用程序(数据库有700个表).并且需要运行的一些查询对时间非常敏感.

  1. 有没有人对EF 6.1.x的性能有任何更新?这涉及在DbContext中进行的一般查询.
  2. 我想我不能在Dapper中使用格式良好的LINQ查询.你有经验吗?是否值得为额外的速度而失去LINQ?
  3. IS Dapper还在积极,不断发展吗?GitHub告诉我是的,但与Subsonic一样,这可能会很快改变.
  4. 混合Dapper和EF是否可行/可行?当我们需要速度时,小巧玲珑,否则EF.

谢谢!

.net performance orm entity-framework dapper

40
推荐指数
1
解决办法
1万
查看次数

小巧玲珑和SQL注入

Dapper如何帮助防止SQL注入?我正在测试不同的DAL技术,必须选择一个来保护我们的网站.我倾向于Dapper(http://code.google.com/p/dapper-dot-net/),但需要一些帮助来学习安全性.

.net orm .net-3.5 dapper

39
推荐指数
2
解决办法
2万
查看次数

dapper缓冲区/缓存的说明

我使用dapper将数据库中的对象作为IEnumerable返回.默认dapper的缓冲区设置为true.

这是如何运作的?

如果dapper缓存第一个查询,然后从内存中获取对象.

如果有人在表中编辑/删除/添加行会发生什么.必须再次为此查询重新缓存所有数据吗?

.net caching dapper

37
推荐指数
1
解决办法
7694
查看次数