我们的应用程序需要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生成?
答案 0 :(得分:1)
我们设法解决了这个问题。 Fluent API和Attributes工作正常。
我们打电话给
dbModelBuilder.Entity<Event>().Property(e => e.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
构建DBModel之后。
在dbModelBuilder.Build()
之前移动此代码可以解决问题。