![]() |
|
Модераторы: gambit |
![]()
|
|
| cha0ss |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.9.2009 Репутация: нет Всего: нет |
Здравствуйте, у меня есть структура из 3 таблиц:
таблица заказчик c 2 связями: 1 к таблице Физ.лицо, 2 к таблице Юр.лицо Столкнулся сразу с несколькими проблемами: 1. Делаю выборку 1 заказчика (выбираю по ID). Получаю объект ЗАКАЗЧИК, но поля FizLico и UrLico у него NULL. Почему? Код:
т.е c.FizLico = null, хотя в базе есть Физ.лицо, присоединенное к заказчику. 2. Пытаюсь удалить FizLico по ID
Вылетает следующая ошибка: {"The DELETE statement conflicted with the REFERENCE constraint \"FK_zakazhik_FizLico\". The conflict occurred in database \"db1\", table \"dbo.zakazhik\", column 'FizLico'.\r\nThe statement has been terminated."} Entity Framework разве не может удалить FizLico, если на текущую запись есть ссылка с таблицы zakazhik. Разве он не должен автоматом изменить zakazhik.FizLico на null? |
||||
|
|||||
| cha0ss |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.9.2009 Репутация: нет Всего: нет |
Нашел некоторое решение второй проблемы:
Сначала выбрал заказчика и присвоил св-ву FizLico null, после удаляю Физ.Лицо из базы. Получается нечто вроде этого:
Но вопрос собственно остается, разве Entity Framework не может следить за связями самостоятельно? |
|||
|
||||
| cha0ss |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.9.2009 Репутация: нет Всего: нет |
Неужели никто не стакливался с данной проблемой, или так мало поклонников Entity Framework?
|
|||
|
||||
| cha0ss |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 8.9.2009 Репутация: нет Всего: нет |
Вообщем наткнулся на то, что каким образом будет удаляться запись / записи зависит не от Entity Framework, а от свойств связи в самой SQL.
Вот выдержка из статьи с МСДН'а (http://msdn.microsoft.com/ru-ru/library/ms...66(SQL.90).aspx)
По первому пункту, где не выдирались дочерние объекты. Собственно я и не писал в запросе, чтобы они выдирались. Ниже пример, который выдирает как свойства заказчика, так и физического лица, который находится под ним
P.S Если кто откопает как можно сделать лучше, пишите буду рад любым соображениям. |
||||
|
|||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |