2013-02-15 2 views
0

Я получаю следующее сообщение об ошибке при попытке запустить решение с помощью Entity Framework 4.0 и интересно, как изменить параметры отображения, чтобы исправить это:Entity Framework вопросы +4,0 отображения

Проблемы в фрагментах отображения начиная в строке 588: необходимо указать отображение для всех ключевых свойств (UserDatas.Id) от EntitySet UserDatas

Чтобы дать некоторый фон - первоначально я создал таблицы, как показано ниже с Modified/дата/по и Id столбцы в каждом из них, но затем решили вытащить их в абстрактные UserData, а затем использовать наследование вместо этого. Так как я изменил это, все пошло в горшок!

Есть ли у кого-нибудь указания относительно того, где я иду не так? Я использовал представление представления дизайна ниже (GUI), и мне кажется, что я ударил по кирпичной стене.

Мой проект db.edmx выглядит так, и нажатие на ошибку приводит меня к таблице переменных, показанной ниже, но ошибка повторяется для всех других таблиц, наследующих этот идентификатор (пожалуйста, игнорируйте все ссылки на другие таблицы - Я не хочу, чтобы отправить весь большой дб схему):

enter image description here

большое спасибо.

ответ

1

Похоже, вы неправильно используете OO наследование. Просто потому, что объекты обмениваются элементами с одинаковыми именами свойств, это не означает, что они наследуют от базы. Например, спросите себя в своем модуле, если Tag IS A UserData? Я подозреваю, что вы могли бы лучше рассказать об этом, если Tag HAS A UserData указывает на сдерживание, а не наследование. Я бы рекомендовал настроить общий интерфейс IUserData, где каждый объект четко реализует интерфейс. В этом случае ваше сопоставление затем перенесет свойства для интерфейса UserData обратно в базовые классы (поскольку они были настроены изначально). Хотя вы можете заставить свое сопоставление работать с моделью наследования, ваши запросы будут значительно сложнее как с точки зрения LINQ, так и с точки зрения TSQL.

+0

Спасибо за ваш ответ Джим - хороший совет. Я решил отказаться от этой идеи и взглянуть на альтернативу, которая не навязывает наследование без правильных рассуждений. Еще раз спасибо, Уилл – WheretheresaWill

Смежные вопросы