gpt4 book ai didi

c# - Principal Role 的多重性必须为 0..1

转载 作者:太空狗 更新时间:2023-10-29 22:21:29 24 4
gpt4 key购买 nike

我正在使用 .NET Framework 4.6.2 和 Entity Framework 6.1.3 Code First 开发一个 C# 库,以便在 SQL Server 2012 数据库中使用它。

我有这两个类:

public class Product
{
public int ProductId { get; set; }

// Omitted for brevity

public virtual ICollection<ProductionOrder> ProductionOrders { get; set; }
}

public class ProductionOrder
{
public int ProductionOrderId { get; set; }
public int? ProductId { get; set; }

// Omitted for brevety

public virtual Product Product { get; set; }

// Omitted for brevity
}

有了这两个配置类:

class ProductionOrderConfiguration : EntityTypeConfiguration<ProductionOrder>
{
public ProductionOrderConfiguration()
{
HasKey(po => po.ProductionOrderId);

Property(c => c.ProductionOrderId)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

Property(po => po.ProductionOrderId)
.IsRequired();

Property(po => po.ProductId)
.IsOptional();

// Omitted for brevity
}
}

class ProductConfiguration : EntityTypeConfiguration<Product>
{
public ProductConfiguration()
{
HasKey(p => p.ProductId);

Property(p => p.ProductId)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

// Omitted for brevity

HasMany(p => p.ProductionOrders)
.WithRequired(po => po.Product)
.HasForeignKey(p => p.ProductId);
}
}

但是,当我尝试运行它时,我收到以下我不理解的消息:

Product_ProductionOrders: : Multiplicity is not valid in Role 'Product_ProductionOrders_Source' in relationship 'Product_ProductionOrders'. Because all the properties in the Dependent Role are nullable, multiplicity of the Principal Role must be '0..1'.

我要表示的模型是:

生产订单可以有零个或一个产品。一个产品可能在一个或 n 个生产订单中。

我不知道如何将 Principal Role 的多重性设置为“0..1”。

最佳答案

好吧,这只是 Fluent API 中使用的不同术语的问题。映射是:

multiplicity 1     => Required
multiplicity 0..1 => Optional

根据你的模型,你需要改变

.WithRequired(po => po.Product)

.WithOptional(po => po.Product)

关于c# - Principal Role 的多重性必须为 0..1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43204585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com