簡體   English   中英

具有自定義外鍵和FK屬性的EF6流利關系

[英]EF6 fluent relation with custom foreign key and FK property

我正在嘗試將現有項目遷移到EF,並且已經具有嚴格的數據庫結構和強制性的屬性集。 我現在要解決的問題是以下問題。

我有兩節課:

public class Entity
{
    public virtual long ID {get;set;}
    public virtual long ContragentID {get;set;}
    public virtual Contragent {get;set;}
}

public class Contragent
{
    public virtual long ID {get;set;}
    public virtual long EntityID {get;set;}
    public virtual Entity {get;set;}
}

使用以下實體映射:

    public class ClassContragentAccountMap : EntityTypeConfiguration<Contragent>
{
    public ClassContragentAccountMap()
    {
        // Primary Key
        HasKey(t => t.ID);
        // Table & Column Mappings
        ToTable("contragent");
        Property(t => t.ID).HasColumnName("id");        
        Property(t => t.EntityID).HasColumnName("e_id");    

        HasOptional(t => t.Entity).WithOptionalDependent(t => t.Contragent);
    }
}

public class ClassLegalEntityAccountMap : EntityTypeConfiguration<Entity>
{
    public ClassLegalEntityAccountMap()
    {
        // Primary Key
        HasKey(t => t.ID);

        // Table & Column Mappings
        ToTable("entity");
        Property(t => t.ID).HasColumnName("id");
        Property(t => t.ContragentID).HasColumnName("contragentid");
    }
}

問題是該關系引發了一個異常,即找不到Entity_ID列。 有沒有一種方法可以為關系指定FK,因為屬性似乎在這里不起作用? 我也嘗試使用:

HasOptional(t => t.Entity).WithOptionalDependent(t => t.Contragent).Map(t=> t.MapKey("e_id"));

但是,這與已經定義的'e_id'屬性沖突。 而且我需要聯系和財產。

有什么方法可以為關系指定FK並在類中保留ID屬性嗎?

也許我可以重新構建關系ID屬性:

public virtual long ContragentID => Contragent?.ID;

public virtual long EntityID => Entity?.ID;

但我想知道還有其他方法可以做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM