Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 5 EF6连接类型_Asp.net Mvc 5_Entity Framework 6 - Fatal编程技术网

Asp.net mvc 5 EF6连接类型

Asp.net mvc 5 EF6连接类型,asp.net-mvc-5,entity-framework-6,Asp.net Mvc 5,Entity Framework 6,我试图弄清楚如何声明连接对象。我知道我可以使用var这个词并完成它,但我希望完全理解返回的对象的类型以及我将如何声明这样一个对象。以下是我正在努力工作的示例: IQueryable<TeamMember, Member> j = Db.TeamMembers.Join(Db.Users, c => c.MemberId, cm => cm.Id,

我试图弄清楚如何声明连接对象。我知道我可以使用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));
IQueryable j=
Db.TeamMembers.Join(Db.Users,
c=>c.MemberId,
cm=>cm.Id,
(c,cm)=>new{TeamMember=c,Member=cm})
其中(m=>m.TeamMember.TeamId==team.Id&&!m.TeamMember.MemberId.Equals(team.CaptainId));
但是上面的代码不起作用,我得到的错误是

类型参数的数目不正确


我将如何完成上述任务?

IQueryable
仅接受1类型(
IQueryable

这就解释了您收到的错误消息

在JOIN查询中,您将返回
匿名
类型(来源:),因此您可以使用

  • IQueryable j=
  • IQueryable j=
  • var j=

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

您可以让Intellisense为您完成工作。使用
var
,可能需要编译,并将鼠标悬停在
var
关键字(而不是变量名)上。工具提示将包含变量的类型。如果可以的话,我一直试图避免创建另一个对象,但看起来我必须这样做。@Bagzli:创建新对象仅用于显示目的(ViewModel)或传输目的(DataTransferObject)是可以的