EF .Net核心2.0 - 将OwnOne与HasDefaultValueSql用于Id(类型:Guid)

时间:2018-01-22 10:41:53

标签: c# entity-framework .net-core entity-framework-core

我有2个实体。 订单地址(作为DDD中的值对象)。 我希望Guid.NewGuid()生成订单的Id属性。我已配置为以下

class OrderEntityTypeConfiguration : IEntityTypeConfiguration<Order>
{
    public void Configure(EntityTypeBuilder<Order> orderConfiguration)
    {
        orderConfiguration.ToTable("orders", OrderingContext.DEFAULT_SCHEMA);

        orderConfiguration.HasKey(o => o.Id);

        orderConfiguration.Ignore(b => b.DomainEvents);

        orderConfiguration.Property(b => b.Id).HasDefaultValueSql<Guid>("(newid())");

        //Address value object persisted as owned entity type supported since EF Core 2.0
        orderConfiguration.OwnsOne(o => o.Address);

    }
}

但是,当使用命令“ dotnet ef迁移添加InitialDatabase ”来创建迁移时,会抛出错误“ 'Order.Id'和'Order.Address#Address.OrderId '都被映射到'ordering.orders'中的列'Id',但被配置为使用不同的默认值('(newid())'和'')。

请帮帮我。我是.net Core2,EF核心的新手。谢谢。

0 个答案:

没有答案