Я полагаю, что это невозможно, если в Entity Framework нет способа отключить «SET Identity_Insert TableName ON».
Обычно в SQL Server, когда вы отправляете удостоверение в поле, его нельзя заполнить вручную, если вы не выполните следующую инструкцию
SET Identity_Insert TableName ON
После выполнения этого оператора вы сможете заполнить поля удостоверений вручную.
Единственные другие варианты, которые я могу придумать, - это удалить атрибут Identity из столбца и создать собственный инкрементатор для поля в Entity Framework, используя частичный класс
как то так
public partial class EntityClassName : global::System.Data.Objects.DataClasses.EntityObject, IEntity
{
partial void InitializeFields();
Int64 IEntity.IdentityColumn
{
get { return IdentityColumn; }
set { //some code for an incrementer
//and the ability to set manually
//if value provide is not null
}
}
}