我尝试将现有项目迁移到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"));
然而它与已经定义的&#39; e_id&#39;冲突。属性。我需要关系和存在的财产。
有没有办法为关系指定FK并在类中保留ID属性?
答案 0 :(得分:0)
我可以选择重建关系ID属性:
public virtual long ContragentID => Contragent?.ID;
public virtual long EntityID => Entity?.ID;
但我想知道还有其他办法吗。