unitOfwork

时间:2017-03-07 20:35:10

标签: sql-server entity-framework design-patterns unit-of-work

我已经实现了一个unitOfwork模式,让我可以处理咨询数据库的所有过程,但是我遇到了一些性能问题。 离。

public Task<IEnumerable<BooksQueryResult>> GetBooks(int idBook, string Title, string Author)
{
   List<SqlParameter> sqlParams = new List<SqlParameter>();
        sqlParams.Add(new SqlParameter("idBook", queryParams.IdBook?? SqlString.Null));
        sqlParams.Add(new SqlParameter("Title", queryParams.Title?? SqlString.Null));
sqlParams.Add(new SqlParameter("Author", queryParams.Author?? SqlString.Null));


        return repos.DbSqlQueryAsync("EXEC usp_getValidBooks @IdBook, @Title, @Author, @DisclosurePeriod
                                               , sqlParams.ToArray());
}

它应该返回超过20k的记录,但需要将近4分钟。

由于

1 个答案:

答案 0 :(得分:0)

我相信这种表现可能是因为使用了异步方法。

从服务器读取大型列时,异步方法可能会出现性能问题(例如varbinary(MAX),varchar(MAX),nvarchar(MAX)或XML)。

您可以找到 rducom 的答案,该答案详细解释了异步方法问题here