如何在.NET中使用Dapper处理数据库连接?

.net c# dapper

我一直在玩Dapper,但我不确定处理数据库连接的最佳方法。

大多数示例显示在示例类中创建的连接对象,甚至在每个方法中。但是我觉得在每个clss中引用连接字符串都是错误的,即使它是从we​​b.config中提取的。

我的经验是使用DbDataContextDbContext与Linq to SQL或Entity Framework,所以这对我来说是新的。

使用Dapper作为我的数据访问策略时,如何构建我的Web应用程序?

热门答案

我创建了一个扩展方法,其中包含一个从配置中检索连接字符串的属性。这使得调用者不必知道关于连接的任何信息,无论是打开还是关闭等等。这个方法确实限制了你,因为你隐藏了一些Dapper功能,但是在我们相当简单的应用程序中,它对我们来说很好。如果我们需要来自Dapper的更多功能,我们总是可以添加一个新的扩展方法来公开它。

internal static string ConnectionString = new Configuration().ConnectionString;

    internal static IEnumerable<T> Query<T>(string sql, object param = null)
    {
        using (SqlConnection conn = new SqlConnection(ConnectionString))
        {
            conn.Open();
            return conn.Query<T>(sql, param);
        }
    }

    internal static int Execute(string sql, object param = null)
    {
        using (SqlConnection conn = new SqlConnection(ConnectionString))
        {
            conn.Open();
            return conn.Execute(sql, param);
        }
    }


许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因