Entries RSS

Архив по рубрикам :

Апр 12

Генерация GUID в Entity Framework

Всем привет!

Сегодня я расскажу о том, как решить проблему нулевого идентификатора (см. рис. 1) в приложениях использующих Entity Framework, на примере стандартной базы aspnetdb и таблицы aspnet_Roles. Хочу сразу упомянуть, что мы здесь не будем использовать стандартные классы asp.net, ввод информации в БД производится по DataSource методом SubmitChanges().

Рис.1. Нулевой идентификатор

Также отмечу, что поле RoleId по умолчанию имеет значение newid(), который позволяет генерировать идентификатор непосредственно в БД при добавлении записи.

После генерации модели .emdx, при добавлении новой роли (например sss) мы получаем нулевой идентификатор, такой как на рис. 1.

Для решения этой проблемы можно использовать не совсем красивый и правильный метод, а именно генерировать идентификатор в самой программе, а не в БД, например как это показано на рис. 2.

Рис. 2. Генерация идентификатора в коде программы

Но ведь данная статья о решении проблемы, а не для ее обхода :-) . Поэтому поковырявшись по зарубежным сайтам, посвященным Entity Framework, я наткнулся на замечательное, а главное правильное решение задачи. И так начнем: Вам необходимо открыть модель .emdx в формате XML  и поправить код модели в ручную как изображено на  рис. 3.

Рис.3. Правка XML кода модели

Вот в принципе и все. Теперь можно  проверить работу скомпилировав проект и записав новую роль.  Успешная генерация идентификатора изображена на рис. 4.

Рис.3. Корректный идентификатор

Всегда готов ответить на Ваши комментарии в статье :-)

Синдикация

Понравилась статья? Подпишитесь на RSS .

Рейтинг@Mail.ru Яндекс.Метрика