【发布时间】:2017-04-04 19:02:38
【问题描述】:
我正在使用 .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: : 多重性在角色中无效 关系中的“Product_ProductionOrders_Source” 'Product_ProductionOrders'。因为所有属性在 Dependent Role 可以为空,Principal Role 的多样性必须 为“0..1”。
我要代表的模型是:
生产订单可以有零个或一个产品。一个产品可能有一个或 n 个生产订单。
我不知道如何将 Principal Role 的多重性设置为 '0..1'。
【问题讨论】:
标签: c# sql-server entity-framework