【发布时间】:2017-05-11 16:44:46
【问题描述】:
尝试获取以下 SQL 的 linq 查询(或 lambda 语法),该 SQL 选择连接表中具有等于“blob”的属性的所有“数据”。
除了:没有明确使用 Join,但是
select data.*
from data
join settings on data.DataID = settings.DataID
where settings.Attribute = 'blob'
显式定义连接
from d in dbcontext.Data
join s in dbcontext.Settings on d.DataID equals s.DataID
where s.Attribute == "blob"
select d
但是有没有办法使用上下文 dbcontext.Data.Settings 像下面这样?
from d in dbcontext.Data
where d.Settings.Attribute == "blob"
select d
Settings 是一个集合类型,因此会想到 .Contains 和 .Where 之类的内容。
使用 .Contains,我的理解是我需要传入一个对象类型
where d.Settings.Contains(new Settings(d.DataID, "blob", null))
但我不关心空(值)匹配,只关心列设置
一些表结构
Data
DataID
Name
Settings
DataID
Attribute
Value
【问题讨论】:
标签: c# entity-framework linq join