1

Мы внедряем систему на основе DDD в среде C# /. NET/EF database-first/SQL Server. Наши объекты домена отделены от создаваемых EF объектов с репозиториями, ответственными за работу с EF и его объектами. Я хотел бы иметь сгенерированные системой (по сравнению с базами данных/автоматически увеличивающиеся) идентификаторы для вновь созданных объектов. Естественным выбором является использование GUID, но есть сопротивление этому из-за размера базы данных. Предпочтение состоит в том, чтобы иметь int ID.Сгенерированный системный идентификатор объекта с использованием хранилищ DDD-стиля с базой данных EF сперва

NHibernate имеет механизм HiLo, который я использовал в прошлом, но похоже, что в EF нет аналогового (или, по крайней мере, готового к производству аналогового).

Каковы подходы, позволяющие иметь уникальный идентификатор с системным сгенерированным кодом с базой данных EF - сначала на SQL Server?

ответ

0

Нет, Entity Framework не поддерживает системные идентификаторы. Если вы хотите, чтобы вы его реализовали самостоятельно, возможно, переопределив SaveChanges в производном DbContext, но я бы не рекомендовал вам сходить по этой дороге

+0

Не совсем уверен, что вы имели в виду под первым предложением ... Похоже, вы предлагая использовать идентификатор, сгенерированный с помощью базы данных, и это именно то, чего я пытаюсь избежать из-за проблем с использованием этого подхода с шаблоном «Единица работы». – boris

+0

Я отредактировал мой ответ –

+0

http://nhforge.org/blogs/nhibernate/archive/2009/03/20/nhibernate-poid-generators-revealed.aspx – boris

Смежные вопросы