【发布时间】:2017-01-14 01:15:17
【问题描述】:
我正在使用带有代码优先方法的 ASP.NET Core 的 Entity Framework Core。 这里是简化版。我有两个实体 Store 和 Shift。 Shift 是依赖实体,Store 和 shift 之间存在一对多的关系。
商店实体:
public partial class Store
{
[Display(Name = "Store Id")]
public int Id { get; set; }
[Display(Name = "Store Name")]
public string Name { get; set; }
public virtual ICollection<Shift> Shifts { get; set; } = new HashSet<Shift>();
}
转变实体
public partial class Shift
{
public int Id { get; set; }
public int StoreId { get; set; }
[Display(Name = "Start Time")]
public TimeSpan? StartTime { get; set; }
public virtual GasStation GasStation { get; set; }
}
以下是 DBContext 中的 fluent API 配置
modelBuilder.Entity<Shift>().Property(t => t.StoreId)
.ValueGeneratedNever().IsRequired();
modelBuilder.Entity<Shift>().Property(t => t.Id).ValueGeneratedOnAdd().IsRequired();
modelBuilder.Entity<Shift>()
.HasKey(k => new { k.GasStationId, k.Id });
场景和目标 我想实现以下目标。一个商店实体可以有许多班次,班次编号在创建班次记录时分配(Identity 列用于 Id)。
- 商店 1:假设我为商店 1 创建了第一个班次。由数据库分配的班次 ID 为 1。如果我为商店 1 创建另一个班次,则班次 ID 被分配为 2。到目前为止一切顺利。
- 商店 2:现在对于商店 2,当我创建第一个班次时,ID 被分配给值 3。我希望它的 ID 值被分配给 1。
我只是希望每个商店记录的 Shift 的 ID 从 1 开始。 我怎样才能做到这一点? 提前感谢您的帮助。
【问题讨论】:
标签: entity-framework entity-framework-core