因此,在我们有两个类的映射中遇到问题
public class Customer
{
public int Id;
public CustomerAddress StatementAddress
public bool AlwaysTrue => true;
public string Code;
}
public class CustomerAddress
{
public int Id;
public bool ForStatement;
public string _CustomerCode
}
我们有一个像这样设置的映射:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Customer>()
.HasOne(s => s.StatementAddress)
.WithMany()
.HasPrincipalKey(x=> new {x._CustomerCode, x.ForStatement})
.HasForeignKey(s => new { s.Code, s.AlwaysTrue});
}
然而,这导致了一个问题,因为它似乎是在数据库上寻找 Customer 表中的 StatementAddress_CustomerCode 和 StatementAddress_ForStatement 列,这显然不是存在的东西 - 为什么它不寻找 Code 表并简单地通过 True for AlwaysTrue?
我原以为它的定义键的方式只是使用代码和 Alwaystrue 值,但似乎正在寻找由属性名称的组合组成的两列,附加来自另一个类的属性名称 =/
繁花不似锦
波斯汪
相关分类