如何将此查询字符串转换为LINQ to SQL查询?

回复

我正在C#类中做最后一个项目,必须构建一个酒店管理系统,但是我目前坚持检查两个日期之间是否已经预订了房间。我试图自己解决这个问题,但是我不知道如何将查询字符串转换为LINQ。

有什么帮助吗?

query = "SELECT * FROM Suites WHERE SuiteType = " + suitetype + " AND NumberOfAdultsAllowed >= " + adults + " AND NumberOfChildrenAllowed >= " + children + " AND ";
query += "Suites.SuiteNumber NOT IN (SELECT SuiteNumber FROM Bookings WHERE ";
query += "(StartDate BETWEEN @_start AND @_end) OR ";
query += "(EndDate BETWEEN @_start AND @_end) OR ";
query += "(@_start BETWEEN StartDate and EndDate) OR ";
query += "(@_end BETWEEN StartDate and EndDate) OR ";
query += "(@_start <= StartDate and @_end >= EndDate) OR ";
query += "(@_start >= @_end))";

我想到先去所有房间

var querySearch = from q in db.Suites
                  where q.SuiteType == suitetype
                  select q;

然后针对另一个查询进行检查,该查询检查套件号是否在表中Bookings以及是否在指定的日期之间。

但是我每次都会迷路。

埃里克·冯肯布施(Erik Funkenbusch)

这是很基本的。唯一的皱纹是子选择,您可以执行以下操作。

您的某些预订逻辑有点多余,在开始日期和结束日期之间的日期不可能也没有在开始日期/结束日期之间的开始日期或结束日期。因此,您可以减少这一点。

而且,last或condition几乎使所有先前的逻辑无效,因为它包括以开始之后的结尾为准的任何日期。

注意:这未经测试,但应该可以使用。

var bookings = from b in db.Bookings
               where (b.StartDate >= start && b.StartDate <= end)
               || (b.EndDate >= start && b.EndDate <= end) select b.SuiteNumber;

var querySearch = from q in db.Suites
              where q.SuiteType == suitetype
              && q.NumberOfAdultsAllowed >= adults
              && q.NumberOfChildrenAllowed >= children
              && !bookings.Contains(q.SuiteNumber)
              select q;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将此查询转换为LINQ

来自分类Dev

如何将此查询从sql转换为linq-to-entities

来自分类Dev

如何将此 SQL 查询转换为 LINQ

来自分类Dev

如何将此LINQ查询转换为lambda查询?

来自分类Dev

如何将此SQL查询转换为Elasticsearch查询?

来自分类Dev

将此SQL查询转换为Linq

来自分类Dev

我如何将此 SQL 转换为实体框架 LINQ 查询

来自分类Dev

如何将此SQL查询转换为Active Record语句?

来自分类Dev

如何将此SQL查询转换为NSFetchRequest

来自分类Dev

如何将此SQL Server 2016查询转换为BigQuery

来自分类Dev

如何将此原始SQL转换为sqlalchemy查询?

来自分类Dev

如何将此SQL查询转换为DB :: getInstance()类?

来自分类Dev

如何将此SQL转换为ecto查询?

来自分类Dev

如何将此 SQL 查询转换为 Codeigniter Active Record?

来自分类Dev

如何将此 SQL 查询转换为 Django ORM 语句?

来自分类Dev

SQL Server:如何将此字符串转换为日期时间?

来自分类Dev

如何将此SQL转换为Linq?

来自分类Dev

如何将此LINQ to Entities查询转换为“方法语法”而不是“查询语法”

来自分类Dev

如何将此查询转换为联接查询

来自分类Dev

LINQ查询将字符串转换为日期时间

来自分类Dev

如何将导入的SQL查询正确转换为SSRS中的表达式字符串

来自分类Dev

如何将此LEFT JOIN Linq查询转换为Lambda表达式

来自分类Dev

如何将SQL查询转换为LinQ

来自分类Dev

如何将sql限制查询转换为linq lambda?

来自分类Dev

如何将 SQL 多表查询转换为 Linq

来自分类Dev

将2列SQL查询转换为字符串

来自分类Dev

将此LINQ表达式转换为SQL Server查询

来自分类Dev

使用.GroupBy()方法将此SQL查询转换为LINQ

来自分类Dev

如何将字符串转换为日期并在Access查询中提取值

Related 相关文章

  1. 1

    如何将此查询转换为LINQ

  2. 2

    如何将此查询从sql转换为linq-to-entities

  3. 3

    如何将此 SQL 查询转换为 LINQ

  4. 4

    如何将此LINQ查询转换为lambda查询?

  5. 5

    如何将此SQL查询转换为Elasticsearch查询?

  6. 6

    将此SQL查询转换为Linq

  7. 7

    我如何将此 SQL 转换为实体框架 LINQ 查询

  8. 8

    如何将此SQL查询转换为Active Record语句?

  9. 9

    如何将此SQL查询转换为NSFetchRequest

  10. 10

    如何将此SQL Server 2016查询转换为BigQuery

  11. 11

    如何将此原始SQL转换为sqlalchemy查询?

  12. 12

    如何将此SQL查询转换为DB :: getInstance()类?

  13. 13

    如何将此SQL转换为ecto查询?

  14. 14

    如何将此 SQL 查询转换为 Codeigniter Active Record?

  15. 15

    如何将此 SQL 查询转换为 Django ORM 语句?

  16. 16

    SQL Server:如何将此字符串转换为日期时间?

  17. 17

    如何将此SQL转换为Linq?

  18. 18

    如何将此LINQ to Entities查询转换为“方法语法”而不是“查询语法”

  19. 19

    如何将此查询转换为联接查询

  20. 20

    LINQ查询将字符串转换为日期时间

  21. 21

    如何将导入的SQL查询正确转换为SSRS中的表达式字符串

  22. 22

    如何将此LEFT JOIN Linq查询转换为Lambda表达式

  23. 23

    如何将SQL查询转换为LinQ

  24. 24

    如何将sql限制查询转换为linq lambda?

  25. 25

    如何将 SQL 多表查询转换为 Linq

  26. 26

    将2列SQL查询转换为字符串

  27. 27

    将此LINQ表达式转换为SQL Server查询

  28. 28

    使用.GroupBy()方法将此SQL查询转换为LINQ

  29. 29

    如何将字符串转换为日期并在Access查询中提取值

热门标签

归档