【问题标题】:Convert tsql query to LINQ [duplicate]将 tsql 查询转换为 LINQ [重复]
【发布时间】:2021-01-13 15:34:27
【问题描述】:

抱歉代码不是英文的。

我有这个 T-SQL 代码:

select terminRez
from TerminRezervacije t
where not exists (select TerminRezervacijeID
                  from Rezervacija as r 
                  where t.TerminRezervacijeID = r.TerminRezervacijeID 
                    and r.DatumRezervacije = '2021-01-14')

这适用于 SQL,但我不知道如何使用 LINQ 进行复制。

此 SQL 代码返回 x 日期未预订的所有约会时间

我有一个 selectListItem 的 linq 表达式,它返回所有约会时间

model.TerminRezervacije = db.TerminRezervacije
    .Select(p => new SelectListItem
    {
        Value = p.TerminRezervacijeID.ToString(),
        Text = p.terminRez
    }).ToList();

如果需要,我会提供相同的英文代码。

我被困在这里,如果有任何帮助,我将不胜感激!

【问题讨论】:

  • 如果你有导航属性,那么 db.TerminRezervacije.Where(x => !x.Rezervacijas.Any(y => y.Rezervacija == date)) 应该可以工作,但如果你使用的是 EF Core,这可能不起作用。

标签: c# sql-server asp.net-mvc linq


【解决方案1】:

如前所述,它可以通过Any 运算符完成,等于SQL EXISTS

var date = ned DateTime(2021, 1, 14);
var query = 
   from t in ctx.TerminRezervacije
   where !ctx.Rezervacija.Where(r => t.TerminRezervacijeID == r.TerminRezervacijeID 
             && r.DatumRezervacije == date).Any()
   select t.terminRez;

【讨论】:

    猜你喜欢
    • 2012-05-18
    • 1970-01-01
    • 2016-01-20
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多