相关疑难解决方法(0)

在sql server compact edition上执行Insert OR Update(upsert)

我有c#项目正在使用sqlserver压缩版和实体框架进行数据访问.我需要向db插入或更新大量5000+或更多的行,因此如果密钥存在,则更新记录(如果不插入).我无法找到一种方法来实现这一点与紧凑版和EF具有可怕的性能,即在核心i7计算机上花费2分钟.我已经尝试搜索记录,看它是否存在,然后插入,如果没有,或更新,如果它,搜索是杀手.我已经尝试编译搜索查询,但只做了一点改进.我尝试的另一件事是在try catch中插入记录,如果更新失败,但这迫使我在每条记录上保存更改以获得异常,而不是在最后是性能杀手.显然我不能使用存储过程,因为它是紧凑版.另外我看过只是在db上直接执行t-sql,但是在compact中缺少进程语句似乎排除了这一点.我在全世界范围内搜寻和思考.我真的想使用紧凑型,如果我可以过度表达部署的好处和能力,以防止用户挖掘数据库.任何建议将不胜感激.

谢谢

c# sql entity-framework upsert sql-server-ce

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

标签 统计

c# ×1

entity-framework ×1

sql ×1

sql-server-ce ×1

upsert ×1