我正在寻找使用 EF Core 增加数据库中一些数字的最佳实践。
我有一个名为 PARENT 的数据库模型。在我的应用程序中,我可以有几个 PARENTS。每个 PARENT 都有几个 CHILDS。
PARENT1: CHILD1 - CHILD2
PARENT2: CHILD1 - CHILD2 - CHILD3
我希望在每个 PARENT 中,每个 CHILD 都通过一个名为 int Number 的列按递增顺序编号。
这意味着:
PARENT1.CHILD1 = 001;
PARENT1.CHILD2 = 002;
PARENT2.CHILD1 = 001;
PARENT2.CHILD2 = 002;
所以,它必须是唯一的,并且按照父级递增。您能否给我一些有效实现此目标的最佳实践建议?
通过调用
我有一个名为 PARENT 的数据库模型。在我的应用程序中,我可以有几个 PARENTS。每个 PARENT 都有几个 CHILDS。
PARENT1: CHILD1 - CHILD2
PARENT2: CHILD1 - CHILD2 - CHILD3
我希望在每个 PARENT 中,每个 CHILD 都通过一个名为 int Number 的列按递增顺序编号。
这意味着:
PARENT1.CHILD1 = 001;
PARENT1.CHILD2 = 002;
PARENT2.CHILD1 = 001;
PARENT2.CHILD2 = 002;
所以,它必须是唯一的,并且按照父级递增。您能否给我一些有效实现此目标的最佳实践建议?
public class Bar {
public Guid BarId {get;set;}
public ICollection<Client> Clients {get;set;}
}
public class Client {
public Guid ClientId {get;set;}
public Guid BarId {get;set;}
public int ClientNumber {get;set;}
}
public class Context : DBContext {
entity.HasKey(e => new { e.BarId, e.ClientId }).HasName("PK_CLIENT");
entity.Property(e => e.ClientId).ValueGeneratedWhenDefault();
entity.Property(e => e.ClientNumber).ValueGeneratedOnAdd();
entity.HasIndex(e => new {e.BarId, e.ClientNumber}).IsUnique()
.HasName("IX_CLIENT_NUMBER");
}
通过调用
ValueGeneratedOnAdd()
方法使数字列递增,但我希望它能够针对每个 Bar 递增,这样就可以允许重复的客户编号在不同的 Bars 之间出现,但不能在同一个 Bar 中出现,并且按照 Bar 而不仅仅是按照客户实体递增。