Entity Framework - Mapping не отображает хранимую процедуру? - PullRequest
4 голосов
/ 04 января 2010

У меня есть хранимая процедура, которая ищет представление, используя полный текст.
Я пытаюсь сопоставить результаты с существующей сущностью (Sales), где я сопоставил столбец MivType с SaleType (так как это имеет больше смысла, и я хочу, чтобы имена БД отсутствовали на моем веб-сайте) , Хранимая процедура сопоставлена ​​с функцией Import, и я определил ее ReturnType как Sales.
Это хорошо работает до тех пор, пока сущность имеет те же имена свойств, что и имена полей.

Вот моя проблема: когда я изменяю имя свойства, я получаю следующую ошибку после запуска импортированной функции:

Считыватель данных несовместим с указанным «Model.Sale». Элемент типа «SaleType» не имеет соответствующего столбца в считывателе данных с тем же именем.

Я могу это исправить, если я изменю свойство «SaleType» на «MivType» для сущности, но зачем мне это делать? Разве это не то, для чего это сопоставление?
Это означает, что я должен использовать одинаковые имена для хранимой процедуры и сущности, поэтому отображение игнорируется (у меня есть такие имена, как YzrName, MivYaad и т. Д., И мне это не нравится).
Есть ли простой способ обойти это? Я не хочу использовать имена БД в своем приложении и предпочитаю не изменять хранимую процедуру ...
(Я должен отметить, что я новичок в EF, так что это может быть ошибкой новичка)

Спасибо.

1 Ответ

4 голосов
/ 21 января 2010

Ну, дизайнер сущностей работает не очень хорошо. Я вообще стараюсь делать все в XML. В XML есть 3 части. Хранилище (представление базы данных SQL). Концептуальное (представление ваших .Net объектов. И отображение концептуального в хранилище

Похоже, ошибка в вашем концептуальном отображении в хранилище. Вы можете сохранить имя свойства SalesType на концептуальной стороне, но отображение должно отображать правильные имена как на концептуальной стороне, так и на стороне хранения.

Обратитесь к MSDN, вот несколько статей. http://msdn.microsoft.com/en-us/library/cc716731.aspx

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