实体框架 – 具有Identity列的SQL Server Compact 4.0表中插入的
发布时间:2021-01-14 13:46:19 所属栏目:MsSql教程 来源:网络整理
导读:编辑:以下问题已在实体框架6中修复. 运行下面的代码令人失望的2分10秒.第二次运行需要6.5分钟.这个问题与this one有关 Private Sub RunTest() Dim sw As New Stopwatch sw.Restart() Using db As New TestDB db.Configuration.AutoDetectChangesEnabled = Fa
编辑:以下问题已在实体框架6中修复. 运行下面的代码令人失望的2分10秒.第二次运行需要6.5分钟.这个问题与this one有关 Private Sub RunTest() Dim sw As New Stopwatch sw.Restart() Using db As New TestDB db.Configuration.AutoDetectChangesEnabled = False For n = 1 To 100 For m = 1 To 100 db.Tops.Add(New Top) Next Next db.SaveChanges() End Using MsgBox(sw.Elapsed.ToString) End Sub 实体: Public Class Top Public Sub New() MyBase.New() One = "arerjlwkerjglwejrglwergoiwerhgiowehrowerlwelfvbwlervbowerghpiweurhgpiwuerviiervljwebbrlvjnepvjnweprvupiweurv" Two = "w;lrjgwwergkjwervgjwelrgjhwelghlwekglwergiuwehrgwjergjwervgjwerjgnwekrngpwergjpowergllwejrnglkwerngpoierhpiiuewrpjwenrwenrv;lwenrvkjernpgpsrvpi" End Sub 'ID' Public Property ID As Integer 'NATIVE PROPERTIES' Public Overridable Property One As String Public Overridable Property Two As String 'NAVIGATION PROPERTIES' End Class 在第二级交互中移动Using块并调用SaveChanges会使它变得更糟. TestDB只是继承了DBContext而没有任何进一步的配置.当我禁用Top.ID属性的数据库生成并自己提供ID时,性能提高了30倍.这个问题使得在SQL Server Compact中使用数据库生成的ID变得不可能.除了使用客户端生成的ID之外,还有其他解决方案吗? 解决方法我发现了这个问题,它是由获取生成的id引起表扫描的语句引起的,我在这里提出了一个修复,用4000个实体测试,从17秒到2秒. http://entityframework.codeplex.com/workitem/857 – 它将包含在Alpha 3之后的EF6版本中(编辑:武汉站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 如何从命令行备份SQL Server 2005中的数据库
- Eolas在微软IE侵权案中获胜 下个目标是谁
- sql-server – 如何对服务器上的所有数据库执行SQL
- html父子页面iframe双向发消息的实现示例
- Windows2012远程桌面的“限制每个用户只能进行一个会话”的
- sql-server – 尝试读取或写入连接到SQL Server的受保护内存
- 假如SCO在侵权案中获胜 Linux代码将会被重写
- 系统的安全分析:Linux与Windows谁更安全?
- Web服务器和应用程序服务器的区别
- Windows Server 2008备份Exchange Information Store