Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обязательна ли ХП? При использовании entity framework 
V
    Опции темы
dazy
Дата 17.3.2009, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 15.9.2006

Репутация: нет
Всего: 8



Для добавления/обновления/удаления записей с использованием entity framework, обязательно ли нужно мапить эти методы на  хранимки? Или можно обойтись без них?
Вопрос в том -  может ли .net сам создавать запросы к базе на добавление/обновление, без использования хранимок? 


PM MAIL   Вверх
Idsa
Дата 18.3.2009, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(dazy @  17.3.2009,  23:22 Найти цитируемый пост)
Для добавления/обновления/удаления записей с использованием entity framework, обязательно ли нужно мапить эти методы на  хранимки? Или можно обойтись без них?

Нет, не обязательно. Более того, использование хранимок с EF - менее предпочтительный вариант, т. к. теряется одно из преимуществ EF: гибкость при смене схемы базы.

Цитата(dazy @  17.3.2009,  23:22 Найти цитируемый пост)
Вопрос в том -  может ли .net сам создавать запросы к базе на добавление/обновление, без использования хранимок? 

Дык все ORM это умеют.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
dazy
Дата 18.3.2009, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 15.9.2006

Репутация: нет
Всего: 8



Хм, а каким образом, тогда избавиться от ошибки
Цитата

Unable to update the EntitySet 'Phrases' because it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element to support the current operation

которая возникает при попытке добавлении объекта?

Код

            var fje = new FJEntities();
            var p = new Phrase();

            p.Id = Guid.NewGuid();
            p.Lang = "RU";
            p.Complexity = 0;
            p.Text = "new string";
            p.Lenght = p.Text.Length;

            fje.AddToPhraseSet(p);
            fje.SaveChanges();


PM MAIL   Вверх
Idsa
Дата 18.3.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



dazy, есть подозрение, что Вы работаете с View. Если так, то View в EF readonly, поэтому для всех операций, кроме чтения, придется мапить хранимки. Для таблиц таких ограничений, конечно же, нет.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
dazy
Дата 18.3.2009, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 15.9.2006

Репутация: нет
Всего: 8



Ну уж нет, вьюшку я не пользовал. Думаю, что ОРМ гораздо предпочтительнее вьюшки.
Но вот primari key не было у таблички. Каюсь.
Поставил РК - обновил модель, и все заработало.

Кстати, странность. Когда добавил табличку без РК, EF принял ее в таком виде, словно каждое поле таблички является ключевым. Не сразу обратил внимание на это. Хотя, по сути, при приемке таблички, в  модель, надо предупреждение выдавать, что мол не будут работать все фичи, так как вьюшка, или РК нету, или еще чего. Ну да ладно, и так хорошо.


PM MAIL   Вверх
Idsa
Дата 18.3.2009, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(dazy @  18.3.2009,  19:09 Найти цитируемый пост)
Не сразу обратил внимание на это. Хотя, по сути, при приемке таблички, в  модель, надо предупреждение выдавать, что мол не будут работать все фичи, так как вьюшка, или РК нету, или еще чего.

Вон в Hibernate/nHibernate раньше вообще дизайнера не было - и ничего smile


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
dazy
Дата 18.3.2009, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 15.9.2006

Репутация: нет
Всего: 8



Цитата

Вон в Hibernate/nHibernate раньше вообще дизайнера не было - и ничего  


Ну, раньше, раньше... Раньше все было по другому. Раньше вообще ОРМ не было.   smile 

PM MAIL   Вверх
Idsa
Дата 18.3.2009, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Цитата(dazy @  18.3.2009,  20:56 Найти цитируемый пост)
Раньше вообще ОРМ не было.   smile 

 smile 

 smile 


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
cha0ss
Дата 8.10.2009, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 8.9.2009

Репутация: нет
Всего: нет



Цитата

Здравствуйте, возникла точно такая же проблема.

Добавляю в проект EntityDataModel с одной таблицей
Пытаюсь добавить новую запись в БД и получаю ошибку:

Unable to update the EntitySet '***' because it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element to support the current operation

Притом для проверки попробовал поэксперементировать с другой таблицей и все прекрасно сработало.
У обеих таблиц есть и Primary Key. 

В чем еще может быть проблема?


сорри тоже первичный ключ пропустил  smile 

Это сообщение отредактировал(а) cha0ss - 8.10.2009, 11:21
PM MAIL   Вверх
1stain
Дата 8.10.2009, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

Репутация: 5
Всего: 40



Цитата(Idsa @  18.3.2009,  16:39 Найти цитируемый пост)
Вон в Hibernate/nHibernate раньше вообще дизайнера не было - и ничего smile 

То естьВы хотите сказать, что сейчас есть графический дизайнер для VS2008, интегрируемый в студию? 
Если да, то киньте пожалуйста ссылкой.


--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.