从 SQL 语句翻译而来的嵌套 lambda 表达式

发布于 2024-10-14 10:35:23 字数 429 浏览 1 评论 0原文

使用 lambda 表达式,如何翻译这个查询?

select * from employee where emp_id=1 and dep_id in (1,2,3,4).

我正在尝试这个表达式,但这会导致异常:

public IEnumrable<employees> getemployee(int emp,list<int> dep )
{
_employeeService.GetAll(e=>(e.emp_id=emp||emp==null) && (e.dep_id.where(dep.contains(e.dep_id))|| dep.count==0 )
}

对于将这些查询转换为这些 lambda 表达式有什么建议吗? 这些函数有什么问题吗?

Using lambda expressions, how do you translate this query?

select * from employee where emp_id=1 and dep_id in (1,2,3,4).

I am trying this expression but this results in exceptions:

public IEnumrable<employees> getemployee(int emp,list<int> dep )
{
_employeeService.GetAll(e=>(e.emp_id=emp||emp==null) && (e.dep_id.where(dep.contains(e.dep_id))|| dep.count==0 )
}

Any suggestion for translating these queries to these lambda expressions?
wahts wrong in these function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黑寡妇 2024-10-21 10:35:23

我的意思并不是居高临下,但我建议您在进一步学习之前先阅读一本 C# 初学者书籍。您在基本语法(例如运算符优先级和相等比较)中犯了错误。
另外,请记住,无法检查原始数据类型是否为空,除非它们被显式指定为可为空。在你的情况下,emp 的类型将是 int?,而不是 int。
同时,尝试

_employeeService.Where(e=>(e.emp_id==emp) && (dep == null || dep.contains(e.dep_id)) );

I don't mean to sound patronizing, but I'd suggest you pick up a beginner's C# book before going further. You've made errors in basic syntax such as operator precedence and equality comparison.
Also, remember that primitive data types cannot be checked for null, unless they're explicitly specified as nullable. In your case emp would be of type int?,not int.
Meanwhile, try

_employeeService.Where(e=>(e.emp_id==emp) && (dep == null || dep.contains(e.dep_id)) );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文