Linq Group by/Distinct与联接表
我计划联接2个表,并获得language列的不同值。我应该如何在Linq中实现这一点?我尝试添加“组”,但没有运气。此外,我还想选择s值和r不同的语言值 我的代码:Linq Group by/Distinct与联接表,linq,join,group-by,distinct,Linq,Join,Group By,Distinct,我计划联接2个表,并获得language列的不同值。我应该如何在Linq中实现这一点?我尝试添加“组”,但没有运气。此外,我还想选择s值和r不同的语言值 我的代码: public ActionResult QuestionLink(int Survey_ID) { var query = from r in db.SURV_Question_Ext_Model join s in db.SURV_Quest
public ActionResult QuestionLink(int Survey_ID)
{
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model
on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
group r.language << this is not work **
select r;
return PartialView(query.ToList());
}
public ActionResult QuestionLink(内部调查\u ID)
{
var query=从db.SURV\u Question\u Ext\u模型中的r开始
在db.SURV_Question_模型中加入s
关于r.Qext_Question_ID等于s.Question_ID
其中s.Question\u Survey\u ID==Survey\u ID
组r.语言您可以这样做:
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model
on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
group new {r, s} by r.language into rg
select rg.Key;
您可以这样做:
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model
on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
group new {r, s} by r.language into rg
select rg.Key;
您可以这样做:
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model
on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
group new {r, s} by r.language into rg
select rg.Key;
您可以这样做:
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model
on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
group new {r, s} by r.language into rg
select rg.Key;
这就是中所称的DistinctBy
。但是如果该方法适用于IEnumerable
,则不能在EF查询中使用它。但可以使用相同的方法:
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
group new { r, s } by r.language into grp
select grp.FirstOrDefault();
但我想知道这是否真的是您想要的。结果取决于数据库恰好返回的语言顺序。我认为您应该为特定语言添加谓词并删除分组:
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model
on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
&& r.language == someVariable
select new { r, s };
这就是中所称的DistinctBy
。但是如果该方法适用于IEnumerable
,则不能在EF查询中使用它。但可以使用相同的方法:
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
group new { r, s } by r.language into grp
select grp.FirstOrDefault();
但我想知道这是否真的是您想要的。结果取决于数据库恰好返回的语言顺序。我认为您应该为特定语言添加谓词并删除分组:
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model
on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
&& r.language == someVariable
select new { r, s };
这就是中所称的DistinctBy
。但是如果该方法适用于IEnumerable
,则不能在EF查询中使用它。但可以使用相同的方法:
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
group new { r, s } by r.language into grp
select grp.FirstOrDefault();
但我想知道这是否真的是您想要的。结果取决于数据库恰好返回的语言顺序。我认为您应该为特定语言添加谓词并删除分组:
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model
on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
&& r.language == someVariable
select new { r, s };
这就是中所称的DistinctBy
。但是如果该方法适用于IEnumerable
,则不能在EF查询中使用它。但可以使用相同的方法:
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
group new { r, s } by r.language into grp
select grp.FirstOrDefault();
但我想知道这是否真的是您想要的。结果取决于数据库恰好返回的语言顺序。我认为您应该为特定语言添加谓词并删除分组:
var query = from r in db.SURV_Question_Ext_Model
join s in db.SURV_Question_Model
on r.Qext_Question_ID equals s.Question_ID
where s.Question_Survey_ID == Survey_ID
&& r.language == someVariable
select new { r, s };
你期望得到什么结果?你期望得到什么结果?你期望得到什么结果?你期望得到什么结果?谢谢你的反馈。是否可以选择2个值,即select grp.FirstOrDefault和r?对不起@gert arnold,我的错误,我也要选择s。可能类似于select new{grp.FirstOrDefault(),s}?另一方面,如果SURV\u Question\u Ext\u Model
和SURV\u Question\u Model
与导航属性相关,则可能会有一些改进。感谢您的反馈。是否可以选择2个值,即select grp.FirstOrDefault和r?对不起@gert arnold,我的错误,我也想选择s。可能是se之类的选择新的{grp.FirstOrDefault(),s}?另一方面,如果SURV\u Question\u Ext\u Model
和SURV\u Question\u Model
与导航属性相关,则可能会有一些改进。感谢您的反馈。是否可以选择2个值,即select grp.FirstOrDefault和r?对不起@gert arnold,我的错误,我也想选择s。可能是se之类的选择新的{grp.FirstOrDefault(),s}?另一方面,如果SURV\u Question\u Ext\u Model
和SURV\u Question\u Model
与导航属性相关,则可能会有一些改进。感谢您的反馈。是否可以选择2个值,即select grp.FirstOrDefault和r?对不起@gert arnold,我的错误,我也想选择s。可能是se之类的另一方面,如果SURV\u Question\u Ext\u Model
和SURV\u Question\u Model
与导航属性相关,则可能会有一些改进。