1

在有两个类;

public class Item
{
    [Key]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }

    public virtual BinCard BinCard { get; set; }
}

public class BinCard
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    [Required]
    public int ItemId { get; set; }
    [Required]
    public DateTime Date { get; set; }
    [Required]
    public double Qty { get; set; }

    public ObservableCollection<Item> Item { get; set; }
}

BinCard.IdPK自动增量。

我想要使​​用Item.IdBinCard.ItemId使用* FluentAPI *的两个表之间的关系。

请帮助我正确地建立这种关系。

4

2 回答 2

1

EF 不支持非 PK 主体 ID,因为它尚不支持 PK 以外的唯一键。BinCard.Id要完成这项工作,您BinCardId必须基于Item实体创建关系 - 顺便说一句。它看起来像是在模型中建立关系的正确方法。您当前的模型看起来很奇怪。

于 2013-02-06T08:51:35.047 回答
1

感谢所有回复。这是我的问题的解决方案。

public class BinCard
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    [Required]
    public int ItemId { get; set; }
    [Required]
    public DateTime Date { get; set; }
    [Required]
    public double Qty { get; set; }

    public virtual Drug Drug { get; set; }
}

public class Item
{
    [Key]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }

    public ObservableCollection<BinCard> BinCard { get; set; }
}

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Drug>()
            .HasRequired(s => s.Stock)
            .WithRequiredPrincipal(s => s.Drug);
}
于 2013-02-08T08:04:34.590 回答