私はC#ライブラリを.NET Framework 4.6.2とEntity Framework 6.1.3 Code Firstで開発してSQL Server 2012データベースで使用しています。プリンシパルロールの多重度は0..1でなければなりません
私はこの2つのクラスがあります。これらの2つの構成クラスで
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はロールでは無効です 'Product_ProductionOrders_Sour 「cee」の関係 「Product_ProductionOrders」。 従属ロールのすべてのプロパティはnullableであるため、プリンシパルロールの多重度は でなければなりません。
私が表現しようとしているモデルは次のとおりです。
製造指図がゼロまたは1つの製品を持つことができます。また、製品は1つまたは複数の製造指図になることがあります。
プリンシパルロールの多重度を「0..1」に設定する方法がわかりません。