EF包含where子句 [英] EF include with where clause
本文介绍了EF包含where子句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
会员积分与memberId和ResourceId。
我想获得会员资源详细信息。
在SQL中,
选择d。*从ResourceDetails d内部加入
r.d.ResourceId = r上的资源。 Id Inner Join
MemberPoint mp on r.id = mp.ResourceId
其中mp.memberId = 1
在EF中,
var query = _context.ResourceDetails
.Include(d => d.Resource)
.Include(r => r.Resource.Memberpoints)
.Where(e => e.Resource.Memberpoints.Where(m => m.MemberId))
当我写上面的EF查询时我收到错误。
错误:未知方法System.Linq.IQueryable的位置(?)
解决方案
您可以尝试使用include方式:
var query = _context.MemberPoint.Include(Resource.ResourceDetails)
.Where(m => m.MemberId == 111111);
或尝试加入resourceId,并选择所需数据的匿名类型:
var query =(从_context.MemberPoint中的m
在m.ResourceId中的_context.ResourceDetails中连接rd等于rd.ResourceId
其中m.MemberId == 11111
选择新
{
成员= m,
ResourceDetail = rd
})
I've Resource and ResourceDetail. MemberPoint with memberId and ResourceId.
I would like to get Resources Details for a member.
In SQL,
Select d.* From ResourceDetails d Inner Join
Resource on r d.ResourceId = r.Id Inner Join
MemberPoint mp on r.id = mp.ResourceId
where mp.memberId = 1
In EF,
var query = _context.ResourceDetails
.Include(d => d.Resource)
.Include(r => r.Resource.Memberpoints)
.Where(e => e.Resource.Memberpoints.Where(m => m.MemberId))
I got error when I write above EF query.
Error: unknown method 'Where(?)'of System.Linq.IQueryable
解决方案
You can try using include this way:
var query = _context.MemberPoint.Include("Resource.ResourceDetails")
.Where(m => m.MemberId == 111111);
Or try joining on resourceId and selecting an anonymous type with the data you need:
var query = (from m in _context.MemberPoint
join rd in _context.ResourceDetails on m.ResourceId equals rd.ResourceId
where m.MemberId == 11111
select new
{
Member = m,
ResourceDetail = rd
})
这篇关于EF包含where子句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文