EF6加入类型

时间:2015-12-29 03:26:05

标签: asp.net-mvc-5 entity-framework-6

我试图找出如何声明连接对象。我知道我可以使用var这个词来完成它,但我希望完全理解返回的对象的类型以及如何声明这样的对象。以下是我试图开展工作的例子:

IQueryable<TeamMember, Member> j =
                Db.TeamMembers.Join(Db.Users,
                c => c.MemberId,
                cm => cm.Id,
                (c, cm) => new { TeamMember = c, Member = cm })
                .Where(m => m.TeamMember.TeamId == team.Id && !m.TeamMember.MemberId.Equals(team.CaptainId));

但是上面的代码不起作用,我得到的错误是

  

类型参数数量不正确。

我如何完成上述工作?

1 个答案:

答案 0 :(得分:0)

IQueryable只接受 1类型IQueryable<T>

这解释了您的错误消息。

在您的JOIN查询中,您返回anonymous类型(来源:https://msdn.microsoft.com/en-sg/library/bb397696.aspx),因此您可以使用的是

  • IQueryable<object> j =
  • IQueryable<dynamic> j =
  • var j =

您无法使用当前代码了解类型,但您始终可以创建另一个模型并使用它