Я получаю
System.NotSupportedException: все объектов в EntitySet "Entities.Message" должен иметь уникальную первичные ключи. Однако, экземпляр тип "Model.Message" и экземпляр типа "Model.Comment" оба имеют то же значение первичного ключа
но я понятия не имею, что это значит.
Используя EF4, у меня есть куча сущностей типа Message. Некоторые из этих сообщений на самом деле являются подтипом, комментариями, наследованием по таблице за тип. Просто
DB.Message.First();
создаст исключение. У меня есть другие экземпляры подтипирования, где я не испытываю проблем, но я не вижу никаких различий. Однако иногда проблема исчезает, если я перезапускаю сервер разработки, но не всегда.
Изменить: Я разработал (должен был раньше), что проблема заключается в ошибке хранимой процедуры, получающей мои сообщения. Способ, которым в настоящее время настроен так, что все поля, относящиеся к сообщению, выбираются, таблица комментариев игнорируется sproc. Затем контекст переходит к обману, возможно, выбирая те сообщения, которые также являются комментариями, как вы предложили. Как правильно это сделать, это центральная проблема. Я нашел некоторые указания для решения в http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/bb0bb421-ba8e-4b35-b7a7-950901adb602.