1

任何人都可以帮助我吗?

这是我的 2 节课

class Request
{
    public Nullable<int> BuyCurrencyId {get ; set;}
    public Nullable<int> SaleCurrencyId {get ; set;}

    [ForeignKey("SaleCurrencyId")]
    public virtual Currency SaleCurrency { get; set; }

    [ForeignKey("BuyCurrencyId")]
    public virtual Currency BuyCurrency { get; set; }
}


class Currency
{
     public int Id { get; set; }
     public string Name { get; set; }

     public virtual ICollection<Request> Requests { get; set; }
     public virtual ICollection<Request> Requests1 { get; set; }
}

我检查了 EF 数据库的更新,我发现 EF 创建Reqyests 表是这样的:

SaleCurrencyId int  (Already exists)
BuyCurrencyId  int  (Already exists)
Currency_Id    int  (Added by EF)
Currency_Id1   int  (Added by EF)

这不是我所期望的。我认为最后两列不正确,它们不存在。

谁能帮我 ?

我正在使用 EF 6 alpha 使用 T4 生成的模型更新现有数据库。请记住,我想使用数据注释,而不是Fluent API

对不起我的英语不好

更新 1

我想如果我将 Currency 类更改为此它将解决我的问题,但它没有。

class Currency
{
     public int Id { get; set; }
     public string Name { get; set; }

     [InverseProperty("SaleCurrencyId")]
     public virtual ICollection<Request> Requests { get; set; }
     [InverseProperty("BuyCurrencyId")]
     public virtual ICollection<Request> Requests1 { get; set; }
}
4

1 回答 1

2

您的 Update1 几乎是正确的解决方案,但[InverseProperty]属性的参数必须是导航属性Request,而不是外键属性:

[InverseProperty("SaleCurrency")]
public virtual ICollection<Request> Requests { get; set; }

[InverseProperty("BuyCurrency")]
public virtual ICollection<Request> Requests1 { get; set; }
于 2013-08-18T10:13:15.290 回答