![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
DenWPF |
|
||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
Создаю новую запись
добавляю его в таблицу
А теперь мне нужно положить его в таблицу ManyToMany, а точнее положить его id, но проблема в том что объект ещё не имеет своего id.
как это сделать? |
||||||
|
|||||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
прямо скажем это не очень-то похоже на таблицы и базы данных....
Используй метод: сначала сохранить, потом получить id, потом записать его в объект, потом записать объект в базу. Для транзационности используй using(new TransactionScope()) -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
вот у меня есть объект desk который я добавил, и после чего я сохранил, как я могу достать имено ид этого объекта?
выбрать из таблицы последнию запись мне не подходит. |
|||
|
||||
v00d00 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 28.12.2005 Репутация: нет Всего: нет |
Чем ты пользуешься для работы с БД?
Entity Framework 4+ и NHibernate 3+ поддерживают работы с таблицами *->* таким образом что эта ссылочная таблица оказывается даже не замапленной на какую-нибудь сущность в модели. Кроме того когда ты сохраняешь новый объект через контекст после сохранения ORM подставит айдишник новой записи в твой объект. Если ты добавляешь записи вручную записанными запросами, большая часть СУБД поддерживают механизмы для выборки сгенеренного айдишника для последней записи. Например для SQL Server 2000+
и делаешь ExecuteScalar для команды добавления |
|||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
использую Entity Framework 4+.
Вот я сохраняю, а объекту не подставляется ID. Я это делаю сразу, он наверное не успевает...если да то как же это решить |
|||
|
||||
KelTron |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 9 Всего: 38 |
После этих строчек в desk.id будет реальное значение из базы данных
-------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
не обновляется.
В чем может быть причина?
Это сообщение отредактировал(а) DenWPF - 12.6.2011, 21:29 |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
а вот я бы не делал SELECT @@IDENTITY, ой как не делал бы.... стоит перечитать про уровни изоляции транзакций и SCOPE_IDENTITY() ... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
эээ я не использую ручной запрос
|
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 2 Всего: 87 |
А почему вам нужно Id? EntityFramework отлично сам всё подставляет куда нужно при присвоении Navigation Property.
Что касается не обновляемого ID - не должно быть такого. Или ты с контекстом что-то сделал, или энтити твоя отцепляется от него по непонятным причинам. Если используется ванильный Entity Framework (установки по умолчанию), то всё должно обновляться. Если есть модификации - напиши какие и подробее закопипасти код добавления и сохранения контекста. |
|||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
Устанавливал всё по дефолту.
|
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 2 Всего: 87 |
Так, эта, ты там выше закопипастил CSDL или SSDL? В общем проверь, что студия сгенерировала правильный SSDL (на диаграмме базы данных на всякий можешь нажать Generate Database from Model). В общем проверь что на стороне SSDL тоже все проперти правильные.
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |