Как решить эту особую проблему в Linq? - PullRequest
1 голос
/ 25 мая 2011

Сначала я немного опишу структуру таблицы.Есть две таблицы, 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
                     };

Теперь мне нужно указать где-то другое, но я не могу понять, где.По сути, я не хочу, чтобы одно и то же Поле возвращалось мне более одного раза (поэтому я никогда не получу дублирующее поле).Где бы я использовал отличную функцию?

1 Ответ

1 голос
/ 25 мая 2011

Distinct, кажется, не поможет вам, если у вас есть несколько formFields на field и вы хотите получать только различные fields. Но если вы можете придумать какой-нибудь метод для выбора только одного formField из всех полей formFields, то это легко сделать:

// 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(),
                    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...