将实体复制到其他DbContext

时间:2014-11-17 15:43:13

标签: c# entity-framework

我们的应用程序需要Offline-DB功能,因此我们将所需的实体复制到离线数据库的DbContext

由于实体应具有相同的ID,我们需要停用ID生成。

在我们的模型创建方法中,我们使用Fluent-API:

dbModelBuilder.Entity<Event>().Property(e => e.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

问题是,将使用生成的ID(1而不是1234)保存实体。

插入旧ID在ID属性上方使用此属性:

[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public override int Id { get; set; }

如何在不添加会破坏我们在线申请的属性的情况下停用某些实体的ID生成?

1 个答案:

答案 0 :(得分:1)

我们设法解决了这个问题。 Fluent API和Attributes工作正常。

我们打电话给

dbModelBuilder.Entity<Event>().Property(e => e.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
构建DBModel之后

。 在dbModelBuilder.Build()之前移动此代码可以解决问题。