我有使用 sqlserver 精简版和实体框架进行数据访问的 c# 项目。我需要向数据库插入或更新大量行,5000+ 或更多,所以如果密钥存在,如果不插入则更新记录。我找不到使用紧凑版和 EF 执行此操作的方法,但性能不佳,即在核心 i7 计算机上花费 2 分钟以上。我曾尝试搜索记录以查看它是否存在,如果不存在则插入或更新,如果存在,则搜索是杀手锏。我已经尝试编译搜索查询,但只带来了很小的改进。我尝试过的另一件事是将记录插入到 try catch 中,如果它更新失败,但这会迫使我在每条记录上保存更改以获取异常,而不是在最后,这是一个性能杀手。显然我不能 t 使用存储过程,因为它是精简版。此外,我还研究过以某种方式直接在数据库上执行 t-sql,但紧凑中缺少进程语句似乎排除了这一点。我已经在世界各地寻找想法。如果我可以过度表达部署优势和防止用户挖掘数据库的能力,我真的很想使用紧凑型。任何建议将不胜感激。
谢谢