【发布时间】:2021-05-14 14:41:41
【问题描述】:
“任务”表:
public class Task
{
public int ID { get; set; }
public string name { get; set; }
}
“任务历史”表:
public class TaskHistory
{
public Guid ID { get; set; }
public DateTime Created { get; set; }
public DateTime LastModified { get; set; }
public string CreatedBy { get; set; }
public int TaskID { get; set; }
public TaskStatus { get; set; }
}
Sql 查询:最近 30 天内完成了哪些任务?
select * from Tasks
where TaskStatus in ('Completed', 'Rejected')
and ID in (
select distinct TaskID
from TaskHistory
where LastModified >= DateAdd(day, -30, GETDATE())
)
问:这个 SQL 查询的等效 LINQ 表达式是什么?
【问题讨论】:
-
为什么你的类没有导航属性? 不可能在没有看到具有 FK 关系的 实际 EF 实体类型的情况下提议替换该 SQL 的 Linq 查询。
-
当你的 SQL 只查询
Tasks表时,TaskHistory是什么意思?我对你的问题投了反对票,因为你显然没有花太多时间思考你提出的问题——这对于像你这样拥有 10k+ 业力的人来说是不合时宜的。你现在应该知道如何就 SO 提出一个好的问题了。 -
我猜SQL子查询应该来自表
TaskHistory,而不是Task。 -
1) 子选择中的错字:应该是“TaskHistory”。 2)我的理解是“导航”意味着a)上下文.cs中的额外代码,以及b)将外键约束引入数据库模式。 "b)" 会破坏交易...
标签: sql sql-server entity-framework linq entity-framework-core