c# - 如何在 C# 代码中将 SQL 查询转换为 LINQ 形式

标签 c# asp.net linq .net-3.5

如何将以下 SQL 查询转换为 C#、.NET 3.5 代码中的 LINQ 查询形式: 1)

select COUNT(distinct Skill_Name) 
from Table1  
where Department = 'ABC' and  Skill_Name is not null 

2)

select distinct location, country from Customer where  Customer_Code ='1001';

最佳答案

我怀疑你想要:

var query = from entry in dbContext.Table1
            where entry.Department == "ABC" && entry.SkillName != null
            select entry.SkillName;

var count = query.Distinct().Count();

或者一次性使用扩展方法语法:

var count = dbContext.Table1
                     .Where(entry => entry.Department == "ABC" && 
                                     entry.SkillName != null)
                     .Select(entry => entry.SkillName)
                     .Distinct()
                     .Count();

如 mesiesta 所示,您可以将查询表达式与查询表达式中不支持的调用结合起来,但我倾向于将查询表达式分配给中间变量...我个人觉得它更清晰,但可以使用您(和您的团队)喜欢的任何一个。

关于c# - 如何在 C# 代码中将 SQL 查询转换为 LINQ 形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8653487/

相关文章:

c# - WPF 是否有 native 文件对话框?

c# - C#如何将多个文件编译在一起?

c# - .NET : Using Mutex to make sure a webservice is only called once at a time

c# - RegisterClientScriptBlock 上的无用错误

linq - EFCore 2.2 GroupBy Sum 和 DateDiff

c# - 具有所有属性的 linq to xml 查询

c# - CaSTLe DynamicProxy IInterceptor 或 ProxyGenerator 应该缓存吗?

asp.net - 如何让 ASP.NET WebForms 路由正确路由 .asmx JSON 调用?

c# - 分层架构中的存储库模式

c# - LINQ:如何声明 IEnumerable[匿名类型]?