Вы не можете обойти это с EF. Как только столбец автоматически увеличивается, он настраивается в модели сущности с StoreGeneratedPattern.Identity
. Это означает, что:
- Столбец будет заполнен в базе данных, а значение передано обратно в приложение после вставки.
- Это также означает, что значение этого столбца никогда не будет передано из вашего приложения.
Если вы отключите StoreGeneratedPattern
, вы потеряете все это поведение, поскольку значение этого столбца будет обрабатываться как любое другое, и оно всегда будет передаваться в базу данных = ваша логика автоинкрементации не будет работать.
Существует также отдельная проблема - разрешено ли явно задавать значение для автоматически увеличиваемых столбцов в MySQL? В MSSQL Server это не так, если вы явно не включите его для соединения.
Лучший способ вставить эту запись с явным идентификатором - использовать старый ADO.NET или ExecuteStoreCommand
на ObjectContext
для непосредственного выполнения вставки SQL.