我正在尝试将OwnedTypes sample升级到EF Core 3.0 Preview 8,但是当我运行该项目时,它无法创建数据库。
调用Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade.EnsureCreated()
时会引发以下异常:
Microsoft.Data.SqlClient.SqlException:如果引用列'OrderDetails.OrderId'是标识列,则无法创建级联外键'FK_OrderDetails_DetailedOrders_OrderId'。 无法创建约束或索引。请参阅先前的错误。'
以前有哪些错误? ?
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
#region OwnsOneNested
modelBuilder.Entity<DetailedOrder>().OwnsOne(p => p.OrderDetails, od =>
{
od.OwnsOne(c => c.BillingAddress);
od.OwnsOne(c => c.ShippingAddress);
});
#endregion
#region OwnsOneTable
modelBuilder.Entity<DetailedOrder>().OwnsOne(p => p.OrderDetails, od =>
{
od.OwnsOne(c => c.BillingAddress);
od.OwnsOne(c => c.ShippingAddress, sa =>
{
sa.Ignore(p => p.IgnoreMe);
});
od.ToTable("OrderDetails");
});
#endregion
}
我认为3.0 breaking changes列表中有一些我需要关注的东西吗?
答案 0 :(得分:0)
od.ToTable("OrderDetails");
以将OrderDetails
映射到与DetailedOrder
相同的表中od.Property("OrderId").ValueGeneratedNever();
以禁用将OrderId
列标记为身份