Entity framework 如何在实体框架核心中按多对多额外列排序?
我使用的是实体框架核心3<代码>成员和Entity framework 如何在实体框架核心中按多对多额外列排序?,entity-framework,entity-framework-core,Entity Framework,Entity Framework Core,我使用的是实体框架核心3成员和请求实体是多对多相关的。但是我有一个额外的列名为Order。会员申请订单保存在MemberRequest表中 public class Member { public int MemberID { get; set; } public string Name { get; set; } public virtual ICollection<MemberRequest> MemberRequ
请求
实体是多对多相关的。但是我有一个额外的列名为Order
。会员申请订单保存在MemberRequest
表中
public class Member
{
public int MemberID { get; set; }
public string Name { get; set; }
public virtual ICollection<MemberRequest> MemberRequests { get; set; }
}
public class Request
{
public int RequestID { get; set; }
public string Message { get; set; }
public virtual ICollection<MemberRequest> MemberRequests { get; set; }
}
public class MemberRequest
{
[Key, Column(Order = 0)]
public int MemberID { get; set; }
[Key, Column(Order = 1)]
public int RequestID { get; set; }
public virtual Member Member { get; set; }
public virtual Request Request { get; set; }
public int Order { get; set; }
}
公共类成员
{
public int MemberID{get;set;}
公共字符串名称{get;set;}
公共虚拟ICollection MemberRequests{get;set;}
}
公共类请求
{
public int RequestID{get;set;}
公共字符串消息{get;set;}
公共虚拟ICollection MemberRequests{get;set;}
}
公共类成员请求
{
[键,列(顺序=0)]
public int MemberID{get;set;}
[键,列(顺序=1)]
public int RequestID{get;set;}
公共虚拟成员成员{get;set;}
公共虚拟请求{get;set;}
公共整数顺序{get;set;}
}
我想使用实体框架核心获得两个选择:
public IEnumerable<Member> Get(int id)
{
var members = await _context.Request
.Include(e => e.MemberRequests)
.Where(e => e.MemberRequests.Any(m => m.RequestID == id))
.ToListAsync();
// How can I order by MemberRequest.Order ???
return member;
}
public IEnumerable Get(int-id)
{
var members=await\u context.Request
.Include(e=>e.MemberRequests)
.Where(e=>e.MemberRequests.Any(m=>m.RequestID==id))
.ToListAsync();
//我如何通过会员申请订购。订购???
返回成员;
}
但我无法按
MemberRequest.order在MemberRequest
实体中排序结果。如何执行此操作?可能有多个MemberRequests与该请求关联,系统应如何决定采用哪一个?从SQL的角度考虑,您希望生成什么查询?可能有多个MemberRequests与该请求关联,系统应该如何决定采用哪一个?从SQL的角度考虑,您希望生成什么查询?