如何在Linq中解决这个明显的问题?

时间:2011-05-24 20:49:14

标签: c# database linq

首先,我将稍微描述一下我的表结构。有两个表,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多次返回给我(所以我从来没有得到重复的字段)。我在哪里使用不同的功能?

1 个答案:

答案 0 :(得分:1)

如果每Distinct有多个formFields,并希望仅收到不同的field

fields似乎对您没有帮助。但是如果你能想到一些方法只能从所有字段的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(),
                    });