我想知道如何在LINQ中定义相关子查询以访问我的数据库中的两个表。
我打算做的是在LINQ中创建以下查询
select * from Value
where CyberEntityID IN (select CyberEntityID from CyberEntity where
datetimevalue >= '2017-05-04 17:11:32.960' and
datetimevalue <= '2017-05-04 17:11:33.035')
在我的代码中,我有以下查询
var query = dc.Values.Where(h => h.CyberEntityID == dc.CyberEntities
.Where(d => d.datetimevalue >= sd && d.datetimevalue <= ed)
.Select(d => d.CyberEntityID)).ToList();
但是我收到错误
operator ==不能应用于int和IQueryable类型
我做错了什么?
答案 0 :(得分:1)
Where
方法返回的IQueryable
CyberEntityID
无法与h.CyberEntityID
进行比较,因此您需要Select
之后.Select(d => d.CyberEntityID).FirstOrDefault()
返回序列的第一个元素:
.Where(h => dc.CyberEntities.Where(d => d.datetimevalue >= sd && d.datetimevalue <= ed)
.Select(d => d.CyberEntityID).Contains(h.CyberEntityID))
或使用FirsOrDefault
方法:
<div>
<md-input-container>
<label>Balance</label>
<input ng-model="balance" type="number" required>
</md-input-container>
<div style="color:red">{{error}}</div>
<md-button ng-click="answer()>Save</md-button>
</div>