我有一个ID字段
的实体public class AgentOrder : BaseEntity
{
public int Id { get; set; }
}
public class AgentOrderMap : EntityTypeConfiguration<AgentOrder>
{
public AgentOrderMap()
{
ToTable("AgentOrder");
HasKey(m => m.Id);
Property(m => m.Status);
}
}
我创建了一个新实体并定义了Id属性。但是当我保存更改时,新实体的创建不是我定义的Id,而是自动生成的。
关键属性是否正常?
答案 0 :(得分:2)
由于您使用的是Fluent配置,您只需要关闭默认的身份插入配置:
所以这个:
public AgentOrderMap()
{
ToTable("AgentOrder");
HasKey(m => m.Id);
Property(m => m.Status);
}
变为:
public AgentOrderMap()
{
ToTable("AgentOrder");
HasKey(m => m.Id);
Property(m => m.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
Property(m => m.Status);
}
请注意,您的数据库需要支持此功能,并且还会关闭标识插件。
答案 1 :(得分:0)
按照惯例,id属性使用Identity,因此无法手动插入。像这样配置:
Property(l => l.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);