问题描述
|
首先,我将描述一下我的表结构。有两个表,FormField和Field。
一个字段可以链接到多个表单字段,但是一个表单字段只能包含一个字段。
所以我有这个Linq查询:
var fields = from f in Data.Field.All()
join ff in formfields on f.Field_rid equals ff.Field_rid
select new
{
FormField = ff,Field = f
};
现在,我需要在其中放置一个不同的位置,但是我不知道该在哪里。基本上,我不希望同一个字段多次返回给我(因此我永远不会得到重复的字段)。我将在哪里使用独特功能?
解决方法
如果每个
field
有多个formFields
,并且只想接收不同的fields
,那么Distinct
似乎对您没有帮助。但是,如果您可以考虑从所有字段的formFields中仅选择一个formField
的方法,则可以轻松完成此操作:
// assumimg that for all fields we want to receive only formField with minimum Field_rid
var fields = Data.Field.All()
.Select(f => new
{
Field = f,FormField = formFields
.Where(ff => ff.Field_rid == f.Field_rid)
.OrderBy(ff => ff.Field_rid)
.FirstOrDefault(),});