Если я просто определю свой столбец ID
как IsPrimaryKey = true
и IsDbGenerated = true
, все будет отлично работать:
[ColumnAttribute(Storage="_ID", AutoSync=AutoSync.OnInsert,
DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
public int ID
{....}
Затем в коде - когда я создаю новую сущность, я просто присваиваю ей произвольную ID
- я обычно использую отрицательные числа:
MyEntity entity = new MyEntity { ID = -55 };
MyContext.MyEntities.InsertOnSubmit(entity);
MyContext.CommitChanges();
После вызова .CommitChanges()
новые сущности сохраняются в таблице базы данных, а фактические, действительные значения ID
(INT IDENTITY
) устанавливаются и отражаются на моем объекте entity
- т.е. после позвони, я верну реальное ID
, которое база данных дала моей новой сущности.
Итак, мой вопрос: где ваша проблема? Вроде работает просто отлично ....