【问题标题】:Fastest way to check if a record exists in an Oracle Database with Entity Framework 6使用 Entity Framework 6 检查 Oracle 数据库中是否存在记录的最快方法
【发布时间】:2017-08-24 15:25:44
【问题描述】:

我需要确定一个键是否存在于使用实体框架的 Oracle 数据库中。我的前端经常使用这个调用,我想知道哪种方法最快?我应该获取第一个匹配记录并检查是否为空,检查键的计数并查看它是否大于一个,还是使用 Any?或者有没有比这些更快的解决方案?

【问题讨论】:

  • 如果是key,为什么不用context.Entity.Find(keyValue)呢?如果记录在上下文中,它也不会调用数据库。

标签: c# .net oracle entity-framework entity-framework-6


【解决方案1】:

我推荐Any,因为您不需要计算。它应该被翻译成一个 EXISTS 语句,它比 COUNT(*) 更快。

可能是这样的:

var exists = ctx.MyEntities.Where(x => x.Id == ...).Any();

不要实例化您的实体(例如,使用 Find),因为这会损害性能,因为您只想检查记录是否存在。

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 2023-03-18
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    • 2017-10-05
    相关资源
    最近更新 更多