Dapper确保查询成功最佳实践
Dapper ensure that query succeeded best practice
我想在我的 WebApi 项目中使用 Dapper
。我有一个从查询创建数据库的方法:
public async Task<bool> CreateDatabase()
{
var connection = _connection.GetOpenConnection();
bool created = await connection.ExecuteAsync(SqlQuery.CreateDatabase);
}
我的问题是,如何编写用于创建数据库的查询以及如何确保查询成功完成以及使用 dapper 中的哪种方法?
我的 SqlQuery.CreateDatabase
看起来像这样:
IF NOT EXISTS(SELECT * FROM sys.databases WHERE name = 'DataBase')
BEGIN
CREATE DATABASE DataBase
END
我需要return查询的内容吗?
如果出现问题,它应该已经作为异常出现 - 可能是 SqlException
- 告诉你它,所以:你所拥有的应该已经很好了。但是请注意,如果您的连接字符串尝试连接到尚不存在的数据库,则Open[Async]
很可能会失败。最终,您可以在之后尝试连接到指定的数据库以确保安全,但同样,您所拥有的应该已经很好。
请注意,通常情况下应用帐户没有权限创建数据库。在那种情况下,您需要让 DBA 为您创建数据库,并告诉您连接详细信息。
我想在我的 WebApi 项目中使用 Dapper
。我有一个从查询创建数据库的方法:
public async Task<bool> CreateDatabase()
{
var connection = _connection.GetOpenConnection();
bool created = await connection.ExecuteAsync(SqlQuery.CreateDatabase);
}
我的问题是,如何编写用于创建数据库的查询以及如何确保查询成功完成以及使用 dapper 中的哪种方法?
我的 SqlQuery.CreateDatabase
看起来像这样:
IF NOT EXISTS(SELECT * FROM sys.databases WHERE name = 'DataBase')
BEGIN
CREATE DATABASE DataBase
END
我需要return查询的内容吗?
如果出现问题,它应该已经作为异常出现 - 可能是 SqlException
- 告诉你它,所以:你所拥有的应该已经很好了。但是请注意,如果您的连接字符串尝试连接到尚不存在的数据库,则Open[Async]
很可能会失败。最终,您可以在之后尝试连接到指定的数据库以确保安全,但同样,您所拥有的应该已经很好。
请注意,通常情况下应用帐户没有权限创建数据库。在那种情况下,您需要让 DBA 为您创建数据库,并告诉您连接详细信息。