小编Niv*_*nth的帖子

性能分析ADO.NET和实体框架

哪一个提供更好的性能?ADO.NET或实体框架.

这是我想要分析的两种方法.

ADO.NET测试方法

public void ADOTest()
{
    Stopwatch stopwatch = Stopwatch.StartNew();
    using (SqlConnection con = new SqlConnection(connection))
    {
        string Query = "select * from Product ";
        SqlDataAdapter da = new SqlDataAdapter(Query, con);
        DataSet ds = new DataSet();
        con.Open();
        da.Fill(ds);
        DataView dv = ds.Tables[0].DefaultView;
    }
    stopwatch.Stop();
    Console.WriteLine("ADO.NET Time Elapsed={0}", stopwatch.Elapsed);
}
Run Code Online (Sandbox Code Playgroud)

实体框架测试方法

public void EFTest()
{
    Stopwatch stopwatch = Stopwatch.StartNew();
    var list = _OnlineStoreEntities.Products.ToList();
    stopwatch.Stop();
    Console.WriteLine("Entity Framework Elapsed={0}", stopwatch.Elapsed);
}
Run Code Online (Sandbox Code Playgroud)

导致首次执行

当我运行上述方法超过100次.平均执行时间显示在图像中:

第一个结果

无论实体框架花费超过4毫秒,ADO.NET只用了2毫秒.

导致第二次执行

当我一次又一次地运行这个方法时.ADO.NET和EF之间的平均执行时间并不多:

第二个结果

  1. 我认为EF在首次执行时表现得非常糟糕那么为什么我们使用EF呢?
  2. 为什么EF第二次执行比第一次执行快?

c# performance ado.net entity-framework

37
推荐指数
3
解决办法
5万
查看次数

模拟控制器动作单元测试的默认角色提供程序

希望这不是一个愚蠢的问题.我一直在寻找两天来模拟我的行为上的system.web.security.roles的调用.

我希望我的单元测试是隔离的,不需要调用外部资源,例如角色得到存储的数据库.

我发现的所有答案都建议创建一个自定义角色提供者,但我更喜欢模仿假货的创建.

我得到的最接近的是这个解决方案 但我没有找到一种方法让ninject在测试之外运行项目时将默认角色Provider传递给构造函数.

我知道Mock类型为此提供了一个更简单的解决方案,但我使用的是犀牛模拟,现在改变太晚了.

unit-testing ninject mocking roleprovider asp.net-mvc-3

5
推荐指数
1
解决办法
1336
查看次数

SessionState超时

我在web.config文件中有这个设置:<sessionState timeout="540" />.这会尝试使所有会话在8小时后过期.但是,会话到期要快得多,并且我得到的对象引用未设置为对象错误的实例.有些人可以告诉我是否有其他因素会影响会话?

提前致谢!

c# asp.net

3
推荐指数
1
解决办法
1万
查看次数

C#SQL内部连接致命错误

尝试通过C#连接到SQL数据库时出错:

SqlConnection sqlc = new SqlConnection("Server=sql09.freemysql.net,3306;Database=rekklamirajmee;Uid=trubilord;Pwd=******;");
sqlc.Open()
Run Code Online (Sandbox Code Playgroud)

通过HeidiSQL连接时,一切正常,具有以下设置:

在此输入图像描述

默认为高级.

我一直试图修复它,已经谷歌超过一个小时,但我似乎无法解决它;

c# sql

-3
推荐指数
1
解决办法
2204
查看次数