[英]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.