.Net Entity Framework检查值是否存在于不同的表中

pedrodotnet

我有以下函数,用于检查4个不同表中是否存在一个ID并返回布尔值:

 public bool CheckIfUsed(int targetId)
        {
            bool isUsedOnTable1 = false;
            bool isUsedOnTable2 = false;
            bool isUsedOnTable3 = false;
            bool isUsedOnTable4 = false;

            isUsedOnTable1 = this.DbContext.table1.Select(target => target.TargetID).Where(TargetID => TargetID == targetId).Count() > 0;
            isUsedOnTable2 = this.DbContext.table2.Select(target => target.TargetID).Where(TargetID => TargetID == targetId).Count() > 0;
            isUsedOnTable3 = this.DbContext.table3.Select(target => target.TargetId).Where(targetID => targetID == targetId).Count() > 0;
            isUsedOnTable4 = this.DbContext.table4.Select(target => target.TargetID).Where(targetID => targetID == targetId).Count() > 0;

            return (isUsedOnTable1 || isUsedOnTable2 || isUsedOnTable3 || isUsedOnTable4);
        }

这种方法在技术上有效,这里的问题是每次执行此功能时都有4个不同查询的性能问题。有什么方法可以同时检查这四个表,或者有其他方法可以提高性能吗?

提前致谢。

官方消息

我们假设第一个查询的结果返回true,而不必查询其他表。另外,您不需要数据计数。这样,应该是

  public async Task<bool> CheckIfUsed(int targetId)
        {
            var isUsed = false;
            isUsed = await this.DbContext.table1.AsNoTracking().AnyAsync(TargetID => TargetID == targetId);
            if (isUsed)
                return isUsed;
            
            isUsed = await this.DbContext.table2.AsNoTracking().AnyAsync(TargetID => TargetID == targetId);
            if (isUsed)
                return isUsed;
            
            isUsed = await this.DbContext.table3.AsNoTracking().AnyAsync(TargetID => TargetID == targetId);
            if (isUsed)
                return isUsed;
            
            isUsed = await this.DbContext.table4.AsNoTracking().AnyAsync(TargetID => TargetID == targetId);
            return isUsed;
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Does Entity Framework 6 support .NET 4.0?

来自分类Dev

FileInfo.BaseName存在于PowerShell中,但不存在于直接的.NET中

来自分类Dev

.NET Entity Framework的干净实现方式?

来自分类Dev

Confused with Ado .net, Entity Framework,LINQ

来自分类Dev

使用Entity Framework和ASP.NET从(很多)结果表中删除记录

来自分类Dev

如何检查值是否存在于SQL中的表的任何列中

来自分类Dev

是否可以从.NET中的REST API获取复杂的Entity Framework对象而无需创建ViewModel对象?

来自分类Dev

与单个表的多个关系Entity Framework asp.net MVC

来自分类Dev

使用Entity Framework C#asp.net创建复杂的Json

来自分类Dev

在Entity Framework Core中模仿ADO.NET设计

来自分类Dev

如何检查值是否存在于struct中?

来自分类Dev

检查键及其值是否存在于对象中

来自分类Dev

如何检查给定数据是否存在于多个表中(所有不同的列名)

来自分类Dev

是否有任何SQL查询来检查值是否存在或不存在于数据库表中

来自分类Dev

如何检查文件是否存在于ASP.NET MVC 4中

来自分类Dev

.NET Entity Framework的干净实现方式?

来自分类Dev

检查id是否存在于其他表中

来自分类Dev

检查ascx控件是否存在于预编译的asp.net网站中

来自分类Dev

使用Entity Framework的Asp.net GridView搜索

来自分类Dev

更新记录时ASP.NET排除属性-Entity Framework

来自分类Dev

如何检查查询的IN子句中的所有值是否存在于表的列中

来自分类Dev

如何使用LINQ从表中选择存在于联结表中的元素-Entity Framework

来自分类Dev

.NET Core Entity Framework 获取多表

来自分类Dev

ASP.NET Entity Framework Order By 和 Then By 不起作用

来自分类Dev

使用 asp.net 时,如何检查我的 pin 是否存在于 SQL 数据库中?

来自分类Dev

.NET Framework 4.5 中 Entity Framework 的 Include 方法与 .NET Standard 2.0 不兼容

来自分类Dev

.NET Core Entity Framework 如何从模型创建表

来自分类Dev

如何检查文件/文件夹是否存在于 C 盘 VB.NET

来自分类Dev

使用asp.net在其值存在于不同表中的GridView中显示名称而不是Id

Related 相关文章

  1. 1

    Does Entity Framework 6 support .NET 4.0?

  2. 2

    FileInfo.BaseName存在于PowerShell中,但不存在于直接的.NET中

  3. 3

    .NET Entity Framework的干净实现方式?

  4. 4

    Confused with Ado .net, Entity Framework,LINQ

  5. 5

    使用Entity Framework和ASP.NET从(很多)结果表中删除记录

  6. 6

    如何检查值是否存在于SQL中的表的任何列中

  7. 7

    是否可以从.NET中的REST API获取复杂的Entity Framework对象而无需创建ViewModel对象?

  8. 8

    与单个表的多个关系Entity Framework asp.net MVC

  9. 9

    使用Entity Framework C#asp.net创建复杂的Json

  10. 10

    在Entity Framework Core中模仿ADO.NET设计

  11. 11

    如何检查值是否存在于struct中?

  12. 12

    检查键及其值是否存在于对象中

  13. 13

    如何检查给定数据是否存在于多个表中(所有不同的列名)

  14. 14

    是否有任何SQL查询来检查值是否存在或不存在于数据库表中

  15. 15

    如何检查文件是否存在于ASP.NET MVC 4中

  16. 16

    .NET Entity Framework的干净实现方式?

  17. 17

    检查id是否存在于其他表中

  18. 18

    检查ascx控件是否存在于预编译的asp.net网站中

  19. 19

    使用Entity Framework的Asp.net GridView搜索

  20. 20

    更新记录时ASP.NET排除属性-Entity Framework

  21. 21

    如何检查查询的IN子句中的所有值是否存在于表的列中

  22. 22

    如何使用LINQ从表中选择存在于联结表中的元素-Entity Framework

  23. 23

    .NET Core Entity Framework 获取多表

  24. 24

    ASP.NET Entity Framework Order By 和 Then By 不起作用

  25. 25

    使用 asp.net 时,如何检查我的 pin 是否存在于 SQL 数据库中?

  26. 26

    .NET Framework 4.5 中 Entity Framework 的 Include 方法与 .NET Standard 2.0 不兼容

  27. 27

    .NET Core Entity Framework 如何从模型创建表

  28. 28

    如何检查文件/文件夹是否存在于 C 盘 VB.NET

  29. 29

    使用asp.net在其值存在于不同表中的GridView中显示名称而不是Id

热门标签

归档