У меня есть база данных, которую я хотел бы перенести в EF CTP5.У меня проблема в том, что когда я вставляю существующие данные, мне нужно переместить их, сохраняя первичный ключ текущего идентификатора для других ограничений внешнего ключа.
Я хотел бы перенести это, используя код EF CTP5, поэтому у меня нетнаписать много SQL или даже содержать его в пакете служб SSIS.
Я попытался использовать синтаксис sql:
SET IDENTITY_INSERT tableName ON
SET IDENTITY_INSERT tableName OFF *
Однако, когда вызывается DbContext.SaveChanges (), вышеуказанный синтаксис происходит в другом соединении, а столбец идентификаторов управляется инфраструктурой EF CTP5, даже когда указывается идентификатор.
Есть лиспособ отключения или удаления соглашения об идентификации для объекта, аналогичного следующему, но на лету, а не при создании экземпляра базы данных:
public class BlogContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<StoreGeneratedIdentityKeyConvention>();
}
}
Спасибо