有没有办法在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(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |