实体框架交换导航属性



我正在将EF与DB首先使用。我在更新EDMX文件时面临问题。假设我有一个桌子发票,另一个桌子看起来很像。现在,在Invoicet中,我有一个与Lookupt具有FK关系的列InvoiceType。现在,实体在Invoicet类中创建了带有Lookupt的Navigational属性。到目前为止,它的好处。

现在,我添加了另一列,上面添加了名称InvoIcestatus和fk和lookutt。现在,实体创建了另一个带有lookupt1的导航属性。但是这里的问题是,第一个导航属性并未指向其原始数据,即InvoIceType。相反,它指向InvoIcestatus数据。有人可以向我解释为什么它是这样的,我该怎么办?

public class InvoiceT
{
    public int InvoiceId {get;set;}
    public int InvoiceStatusLkpId {get;set;}
    public int InvoiceTypeLkpId {get;set;}
    public virtual LookupT LookupT {get;set;}    // Previously pointing to Type. Now to Status.
    public virtual LookupT LookupT1 {get;set;}    // Pointing to Type
}
public class LookupT
{
    public int LookupId {get;set;}
    public string LookupValue {get;set}
    public virtual ICollection<InvoiceT> InvoiceT {get;set;}
    public virtual ICollection<InvoiceT> InvoiceT1 {get;set;}
}

,所以我弄清楚了这个问题。似乎当EF创建导航属性时,它按照FK关系名称顺序执行此操作,即,如果我与名称Relationa和ReliationB有两个FK关系,则将首先创建RelationA的导航属性,然后将其用于关系。在我的情况下,我的类型和状态的关系名称为" fk_invoicet_invoupt_invoicetypelkpid"one_answers" fk_invoicet_lookupt_invoipt_invoicestatuslkpid'(分别是自动生成的),并将导航属性添加到了后来的订购。因此,我所要做的就是更新关系名称以添加它们的顺序,并且一切都开始正常工作。

相关内容

  • 没有找到相关文章

最新更新