加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

有没有办法在C#代码中的两点之间检索所有数据(Linq-to-sql)

发布时间:2020-12-15 22:14:21 所属栏目:百科 来源:网络整理
导读:我的内容如下: 我正在使用C#Asp.Net开发的一个系统(一个巨大的,巨大的,绝对成长的无论如何系统).我正在尝试开始创建一些单元测试来启动重构(相信,它需要重构(有一些控制器有10k,12k线). 问题是这个系统中的很多东西都与数据库有关(系统与数据库紧密耦合).数
我的内容如下:
我正在使用C#Asp.Net开发的一个系统(一个巨大的,巨大的,绝对成长的无论如何系统).我正在尝试开始创建一些单元测试来启动重构(相信,它需要重构(有一些控制器有10k,12k线).
问题是这个系统中的很多东西都与数据库有关(系统与数据库紧密耦合).数据库上下文在很多代码中实例化,而不是注入.
因此,我现在的观点是将一些数据模拟到本地MDB文件中以重构代码并创建具有自己的MDB的单元测试(具有所有数据库结构,但仅包含他将使用的数据).

我在做什么呢?像这样的东西:

[TestMethod()]
public void AnyTest()
{
    var dbLogger = new DbLogger(); //this class is not created,it's just an example.
    dbLogger.Start();

     WorstWrittenMethodEver(); //this method will call any other methods insides,//a couple of then 
                               //and I really don't know the order and the
                               //complexity (much times very high),and this will probably
                               //instantiate the DataContext a lot of times and do
                               //a lot of data retrieval.

    db.StopLog();
    Console.WriteLine(db.DataRetrieved); //And in this line I will print all the tables 
   //and data retrieved between this two points.
}

之后,我将获取该数据,模拟到一个MDB文件中,并重构上面的单元测试以获得真正的单元测试.

反正有吗?

解决方法

看起来这不是一件容易的事.而且我认为你应该使用一些受欢迎且经过测试的库或工具.我的建议是使用 MiniProfiler.它允许捕获所有SQL查询(还包括对LinqToSql的支持).它具有良好的用户界面和API,可以在您的代码中进行交互.实际上,要获取所有SQL查询数据,您可以使用以下方法:

MiniProfiler.Current.GetSqlTimings();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读