小编Ami*_*shi的帖子

交易与精巧点网

我想在多个表上运行多个insert语句.我正在使用dapper.net.我没有看到任何方法来处理与dapper.net的交易.

请分享您对如何使用dapper.net进行交易的想法.

c# transactions dapper

98
推荐指数
6
解决办法
5万
查看次数

MySql.Data.MySqlClient.MySqlException:"主机localhost不支持SSL连接."

我使用msyql.data 8.08和.net core连接到mysql5.7.18但是抛出以下异常:

MySql.Data.MySqlClient.MySqlException:“The host localhost does not support SSL connections.”

怎么处理呢?

c# mysql mysql.data asp.net-core

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

如何用Dapper实现工作单元模式?

目前,我正在尝试使用Dapper ORM与工作单元+存储库模式.

我想使用工作单元而不是简单的dapper存储库,因为我的插入和更新需要一定程度的事务处理.我一直无法找到任何有用的例子,因为大多数似乎使用实体框架并且在工作单元内存在泄漏问题.

有人可以指点我正确的方向吗?

unit-of-work repository-pattern dapper

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

当前密码未知时重置MySQL root密码

我继承了一个安装了mysql的服务器.我没有任何用户的mysql密码,甚至没有root(虽然我有linux root密码).另外,我只知道另一个用户帐户besdies root,并且没有权限执行任何操作,甚至SELECT.

我尝试停止mysql servicw,使用skip grant tables选项重新启动,只是在没有密码的情况下登录:

service mysqld stop
service mysqld start --skip-grant-tables &
mysql -u root
Run Code Online (Sandbox Code Playgroud)

但是得到以下错误:

Access denied for user 'root'@'localhost' (using password: NO)
Run Code Online (Sandbox Code Playgroud)

然后我尝试重置密码:

mysqladmin -u root password 'newpw'
Run Code Online (Sandbox Code Playgroud)

但这也给出了访问被拒绝的错误.

我还尝试以其他用户身份登录(没有pw)并执行以下命令:

UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
Run Code Online (Sandbox Code Playgroud)

并得到此错误:

ERROR 1142 (42000): UPDATE command denied to user ''@'localhost' for table 'user'
Run Code Online (Sandbox Code Playgroud)

我也试过删除mysql并重新安装,但我得到了同样的错误.

有什么建议?

mysql passwords

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

Dapper:"SELECT COUNT(*)FROM TableName"的结果

我有以下代码:

string sql = "SELECT COUNT(*) FROM " + tableName;
var rtn = DapperConnection.Query<int>(sql);
Run Code Online (Sandbox Code Playgroud)

这可以在rtn变量中恢复1条记录.当我检查变量时,它似乎有2个成员,一个是"[0]"而另一个是"原始视图".

成员[0]的类型是int并且具有期望的值,但我似乎无法在我的代码中获得该值.这似乎是一个愚蠢的问题,因为我应该能够达到它,但不能.最新的尝试如下:

int rtnCount = (int)rtn[0];
Run Code Online (Sandbox Code Playgroud)

但是这给了我一个编译器错误.如何在我的代码中获得此值?

dapper

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

IOS 11 GoogleMaps在设备上崩溃(iphone 5s)

Xcode 8.3.2 iphone 5s ios 11 GoogleMaps 2.4

我在viewContoller中遇到错误和崩溃

@IBOutlet weak var mapView: GMSMapView! 
override func viewDidLoad() { }
Run Code Online (Sandbox Code Playgroud)

日志:

CoreData: annotation:  Failed to load optimized model at path '/var/containers/Bundle/Application/2D2D05FB-A524-4594-B222-69B58E038E9A/Medico.app/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.omo'
CoreData: annotation:  Failed to load optimized model at path '/var/containers/Bundle/Application/2D2D05FB-A524-4594-B222-69B58E038E9A/Medico.app/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.omo'
CoreData: annotation:  Failed to load optimized model at path '/var/containers/Bundle/Application/2D2D05FB-A524-4594-B222-69B58E038E9A/Medico.app/GoogleMaps.bundle/GMSCacheStorage.momd/Storage.omo'
2017-09-21 16:02:08.805064+0300 Medico[2552:187180] [Common] _BSMachError: port 1187f; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"
Run Code Online (Sandbox Code Playgroud)

它只发生在IOS 11中

xcode google-maps ios swift ios11

12
推荐指数
1
解决办法
1865
查看次数

AsList()比使用返回IEnumerable的IDbConnection.Query()的ToList()更好吗?

我从Marc Gravell(@MarcGravell)那里读到了这个答案:https://stackoverflow.com/a/47790712/5779732

最后一行说:

作为代码的次要优化:首选AsList()到ToList()以避免创建副本.

该陈述是关于QueryMultiple()哪些回报GridReader.

在我的理解中,System.Linq提供了一种扩展方法IEnumerable.ToList().以下是从微软ToList().

ToList(IEnumerable)方法强制立即进行查询评估并返回包含查询结果的List.您可以将此方法附加到查询中,以获取查询结果的缓存副本.

IDbConnection.Query()将永远返回IEnumerablenull.在调用代码时可以轻松完成空检查.那么有什么区别AsList呢?

如果我的理解是正确的,AsList将始终在内部调用ToList哪个将创建副本.

考虑到这一点,是AsList()不是更好ToList()IDbConnection.Query(),它返回IEnumerable?如是; 为什么?

AsList()在这种情况下,内部是什么使它成为更好的选择?

c# linq performance database-performance dapper

10
推荐指数
2
解决办法
3543
查看次数

Dapper 中的 QuerySingle 或 QueryFirst 内部如何工作?

我看到 Dapper 有 QuerySingle 和 QueryFirst 方法。QuerySingle 是否检查 sql 是否仅返回一行并映射该行?QueryFirst 是否返回独立映射的第一行有多少行?

如果我想进行任何查询,例如anyItemSold:

Select Top 1 1 From Items Where IsSold = 1
Run Code Online (Sandbox Code Playgroud)

我必须这样写并且可能使用 ExecuteScalar 吗?

c# dapper

10
推荐指数
1
解决办法
9478
查看次数

Dapper 如何在不显式打开连接的情况下执行查询?

我们使用 Dapper 进行某些数据访问活动,并使用标准推荐方法连接到数据库,如下所示:

public static Func<DbConnection> ConnectionFactory = () => new SqlConnection(ConnectionString);
Run Code Online (Sandbox Code Playgroud)

但是,如果我们尝试执行一条语句,在文档中它表明您需要首先声明:

using (var conn = ConnectionFactory())
{
   conn.Open();
   var result =  await conn.ExecuteAsync(sql, p, commandType: CommandType.StoredProcedure);
   return result;
}
Run Code Online (Sandbox Code Playgroud)

这意味着,您必须显式打开连接。但是,如果我们省略该声明conn.open(),它也可以工作,我们担心在这种情况下连接可能无法正确处理。

如果有任何关于如何在显式打开任何连接的情况下执行 SQL 的评论,我将不胜感激。

dapper

9
推荐指数
1
解决办法
8355
查看次数

从 Azure 函数调用存储过程时,“System.Data.SqlClient.TdsParser”的类型初始值设定项引发异常错误

我有一个Azure Event hub智能电表的读数。我正在尝试使用将Azure Function仪表读数写入 Azure SQL DB。我在 Azure SQL DB 中创建了一个目标表和一个存储过程来解析 JSON 并将内容存储在表中。我已经成功测试了存储过程。

然而,当我从 Azure 函数调用它时,出现错误:“System.Data.SqlClient.TdsParser”的类型初始值设定项引发异常。出于测试目的,我尝试从 Azure 函数执行一个简单的 SQL select 语句,但这给出了相同的错误。我现在迷失了,因为我尝试了很多选择但没有运气。这是Azure功能代码:

#r "Microsoft.Azure.EventHubs"

using System;
using System.Text;
using System.Data;
using Microsoft.Azure.EventHubs;
using System.Data.SqlClient;
using System.Configuration;
using Dapper;

public static async Task Run(string events, ILogger log)
{
    var exceptions = new List<Exception>();

    try
      {
            if(String.IsNullOrWhiteSpace(events))
                return;
            try{
                string ConnString = Environment.GetEnvironmentVariable("SQLAZURECONNSTR_azure-db-connection-meterreadevents", EnvironmentVariableTarget.Process);

                using(SqlConnection conn = new SqlConnection(ConnString))
                {
                    conn.Execute("dbo.ImportEvents", new { Events = events }, commandType: CommandType.StoredProcedure); …
Run Code Online (Sandbox Code Playgroud)

.net c# azure-sql-database azure-functions

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