Помощь с запросом LINQ to SQL - PullRequest
0 голосов
/ 28 февраля 2011

Обычно у меня все хорошо, но по какой-то причине я не могу понять, почему именно этот запрос побеждает меня.

Для простоты вот база данных (Brand и PageTitle):

enter image description here

PageTitle - это просто таблица для хранения SEO-данных (в Brand есть только одна строка)

Я хочу: выбрать одну строку из PageTitle, где brands = p (переменная, содержащая значение строки запроса)

Это пример того, что я пытаюсь сделать (если в * 1014 нет записей для бренда * Я не хочу выдавать ошибку).

var pages = da.PageTitles.Where(x => x.Brands.Single(z => z.BrandID == p)).SingleOrDefault();
                if (pages.Any())
                {
                    txtSeoTitle.Text = pages.Title;
                    txtSeoMetaKeywords.Text = pages.Keywords;
                    txtSeoMetaDesc.Text = pages.Description;
                }

1 Ответ

1 голос
/ 28 февраля 2011

Если я не пропускаю что-то очевидное, вы не можете просто сделать это:

var page = db.PageTitles
              .FirstOrDefault(x => x.Brands.Any(y => y.BrandId == p));

SingleOrDefault сгенерирует исключение, если будет возвращено более одной строки, поэтому я думаю, что вам нужно FirstOrDefault.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...