Linq - Неожиданное поведение типа ограничения уникальности - PullRequest
2 голосов
/ 27 марта 2012

У меня есть база данных с простой таблицей веса, на которую ссылается другая таблица. Назовем их соответственно Категория и Товар.

Таблица Product имеет несколько столбцов, один из которых является столбцом внешнего ключа (с ограничением) для CategoryID для строки таблицы Category. Все просто, и у меня их много в этой конкретной базе данных.

Я использую Linq в Visual Studio 2008 для представления этих данных в моем приложении. Обе таблицы выглядят как обычно, и ни одна из них не имеет в своих свойствах ничего особенного, что указывало бы на поведение, которое я опишу.

В самой базе данных есть несколько строк Product, которые имеют CategoryID=1. Есть два или три, которые имеют CategoryID=2. Однако, когда данные загружаются в мое приложение через Linq, итерация по context.Products показывает, что первые три имеют CategoryID=1, CategoryID=2 и CategoryID=3, а все остальные строки имеют CategoryID=NULL. Это не так, как это выглядит в базе данных. Других аномалий в этой базе данных нет.

Помощь

edit: Я разместил ответ ниже, но, может быть, ребята из DevExpress могут присоединиться? Я счастлив, что теперь это работает правильно, но я не рад, что я все еще не понимаю, что пошло не так.

1 Ответ

0 голосов
/ 27 марта 2012

Ответ здесь был двояким:

  1. Я восстановил всю базу данных в файле dbml.Это исправило неверные данные, отображаемые при выполнении итерации запроса, но данные по-прежнему отображались некорректно, когда я пытался поместить эти данные в сетку.

  2. Я создал новыйстолбец перед выполнением шага 1, и данные показывались неправильно.После выполнения шага 1 данные в этом новом столбце (сопоставленные только с CategoryID) отображались правильно.Однако данные в исходном столбце (сопоставленном с сущностью Category) по-прежнему вели себя так, как было описано ранее.Как только я изменил поле с Category на CategoryID, поведение прекратилось.Я до сих пор точно не знаю, почему это произошло, но, по крайней мере, сейчас у меня есть исправление.

Спасибо за вашу помощь, @JonSkeet.:)

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