我想在多个表上运行多个insert语句.我正在使用dapper.net.我没有看到任何方法来处理与dapper.net的交易.
请分享您对如何使用dapper.net进行交易的想法.
我使用msyql.data 8.08和.net core连接到mysql5.7.18但是抛出以下异常:
MySql.Data.MySqlClient.MySqlException:“The host localhost does not support SSL connections.”
怎么处理呢?
目前,我正在尝试使用Dapper ORM与工作单元+存储库模式.
我想使用工作单元而不是简单的dapper存储库,因为我的插入和更新需要一定程度的事务处理.我一直无法找到任何有用的例子,因为大多数似乎使用实体框架并且在工作单元内存在泄漏问题.
有人可以指点我正确的方向吗?
我继承了一个安装了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并重新安装,但我得到了同样的错误.
有什么建议?
我有以下代码:
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)
但是这给了我一个编译器错误.如何在我的代码中获得此值?
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中
我从Marc Gravell(@MarcGravell)那里读到了这个答案:https://stackoverflow.com/a/47790712/5779732
最后一行说:
作为代码的次要优化:首选AsList()到ToList()以避免创建副本.
该陈述是关于QueryMultiple()
哪些回报GridReader
.
在我的理解中,System.Linq
提供了一种扩展方法IEnumerable.ToList()
.以下是从微软约ToList()
.
ToList(IEnumerable)方法强制立即进行查询评估并返回包含查询结果的List.您可以将此方法附加到查询中,以获取查询结果的缓存副本.
IDbConnection.Query()
将永远返回IEnumerable
或null
.在调用代码时可以轻松完成空检查.那么有什么区别AsList
呢?
如果我的理解是正确的,AsList
将始终在内部调用ToList
哪个将创建副本.
考虑到这一点,是AsList()
不是更好ToList()
用IDbConnection.Query()
,它返回IEnumerable
?如是; 为什么?
AsList()
在这种情况下,内部是什么使它成为更好的选择?
我看到 Dapper 有 QuerySingle 和 QueryFirst 方法。QuerySingle 是否检查 sql 是否仅返回一行并映射该行?QueryFirst 是否返回独立映射的第一行有多少行?
如果我想进行任何查询,例如anyItemSold:
Select Top 1 1 From Items Where IsSold = 1
Run Code Online (Sandbox Code Playgroud)
我必须这样写并且可能使用 ExecuteScalar 吗?
我们使用 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 的评论,我将不胜感激。
我有一个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) dapper ×6
c# ×5
mysql ×2
.net ×1
asp.net-core ×1
google-maps ×1
ios ×1
ios11 ×1
linq ×1
mysql.data ×1
passwords ×1
performance ×1
swift ×1
transactions ×1
unit-of-work ×1
xcode ×1