首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体框架4.1 DatabaseGeneratedOption.Identity性能

问实体框架4.1 DatabaseGeneratedOption.Identity性能
EN

Stack Overflow用户
提问于 2011-07-11 00:25:45
回答 2查看 4.3K关注 0票数 0

我目前正在开发一个使用实体框架4.1 (代码优先)和SQL Server CE 4.0的应用程序。我真的很喜欢SQL Server CE 4.0的新特性之一就是计算值。

但是在将旧数据导入我的新数据存储系统(大约50000个条目)时,我遇到了一些性能问题。这是我的第二个实现。第一个版本使用Entity Framework 4.0和SQL Server CE 3.5。但这些实现之间存在巨大的性能差异。代码第一个实现大约需要一个小时来导入条目,而另一个实现只需要几分钟。

花在SaveChanges方法上的时间最多。我将问题追溯到[DatabaseGenerated(DatabaseGeneratedOption.Identity)]属性。如果我使用[DatabaseGenerated(DatabaseGeneratedOption.None)]并实现自己的密钥生成(作为一种简单的变通方法),性能就会回到第一个实现的水平。

这是一个已知的问题吗?有什么方法可以解决这个性能问题吗?或者生成我自己的密钥是可行的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-11 22:49:17

我决定采用“生成我自己的密钥”的方式作为变通办法。我向我的DBContext类添加了生成密钥所需的特性。

如果Microsoft更改了此行为,我将切换回自动生成。

票数 0
EN

Stack Overflow用户

发布于 2011-07-11 05:11:09

在应用程序的生命周期内保持ObjectContext /连接处于打开状态。EF对于批量插入不是理想的,对于最大性能使用SqlCeResultSet。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6642274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档