EF包含where子句 [英] EF include with where clause

查看:216
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆