【问题标题】:How do I add a shadow property to an owned type?如何将影子属性添加到自有类型?
【发布时间】:2020-04-02 08:50:22
【问题描述】:

假设我有一个包含所有地址类型列表的客户实体。我还有一个 Office 实体,还有一个拥有的地址类型列表。

在我的 OnModelCreating() 方法中,我有:

modelBuilder.Entity<Customer>().OwnsMany(s => s.Addresses, a =>
{
    a.Property<DateTime>("CreatedDate");
    a.Property<DateTime>("UpdatedDate");
}).ToTable("CustomerAddresses");

modelBuilder.Entity<Office>().OwnsMany(s => s.Addresses, a =>
{
    a.Property<DateTime>("CreatedDate");
    a.Property<DateTime>("UpdatedDate");
}).ToTable("OfficeAddresses");

我收到以下错误:

“不能将表 'Addresses' 用于实体类型 'Customer.Addresses#Address',因为它正在用于实体类型 'Office.Addresses#Address' 并且它们的主键之间没有关系。”。

但是,如果我有:

modelBuilder.Entity<Customer>().OwnsMany(s => s.Addresses).ToTable("CustomerAddresses");
modelBuilder.Entity<Office>().OwnsMany(s => s.Addresses).ToTable("OfficeAddresses");

它有效。

那么如何给它添加阴影属性呢?

【问题讨论】:

    标签: entity-framework-core owned-types


    【解决方案1】:

    如果找到解决办法是:

        modelBuilder.Entity<Customer>().OwnsMany(s => s.Addresses, a =>
        {
            a.Property<DateTime>("CreatedDate");
            a.Property<DateTime>("UpdatedDate");
            a.ToTable("CustomerAddresses");
        });
    
        modelBuilder.Entity<Office>().OwnsMany(s => s.Addresses, a =>
        {
            a.Property<DateTime>("CreatedDate");
            a.Property<DateTime>("UpdatedDate");
            a.ToTable("OfficeAddresses");
        });
    

    【讨论】:

      猜你喜欢
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多