我有一个相对简单的事情,我可以在 SQL 中轻松完成,但我正在尝试习惯使用 Lambda 表达式,并且很难。
这是一个简单的例子。基本上我有2张桌子。
- tblAction (ActionID, ActionName)
- tblAudit(AuditID、ActionID、已删除)
tblAudit 可能有一个关于 tblAction 的条目,其中 Deleted 标志设置为 1。
我要做的就是选择我们在 tblAudit 中没有已删除条目的操作。所以SQL语句是:
Select tblAction.*
From tblAction LEFT JOIN tblAudit on tblAction.ActionID=tblAudit.ActionID
where tblAudit.Deleted <> 1
VB.Net 的 LINQ 中的上述内容是什么?我试过了:
Context.Actions.Where(Function(act) Context.Audit
.Where(Function(aud) aud.Deleted=False AndAlso aud.ActionID=act.ActionID)).ToList
但这实际上是一个内部连接类型的场景,它要求 tblAction 中的每个条目在 tblAudit 中也有一个条目。我正在使用 Entity Framework Code First 来进行数据库映射。有没有办法以可以做到这一点的方式定义映射?