实体框架5使用命名外键一对一但使用属性

时间:2013-01-09 22:05:13

标签: entity-framework entity-framework-5

是否可以仅使用属性来实现这一点?

我需要Class2表拥有自己的Id主键和一个名为Class2Id的列,它是Class1.Id的外键。

public class Class1
{
    public virtual int Id { get; set; }
    public virtual Class2 Class2 { get; set; }
}

public class Class2
{
    public virtual int Id { get; set; }
    public virtual Class1 Class1 { get; set; }        
}

我可以使用以下方法使用流畅的映射来实现:

modelBuilder.Entity<Class1>()
  .HasRequired(x => x.Class2)
  .WithRequiredPrincipal(x => x.Class1)
  .Map(x => x.MapKey("Class1Id"));

1 个答案:

答案 0 :(得分:1)

根据Julia Lerman撰写的“编程实体框架:代码优先”一书,它应该是可能的。配置取决于它是可选的1-1关系还是需要1-1的关系。 它是通过使用

完成的
  

[关键]

  

[ForeignKey的]

在依赖端应用的数据注释。 该书包含以下示例:

public class PersonPhoto
{
  [Key]
  [ForeignKey("PhotoOf")]
  public int PersonId { get; set; }
  public byte[] Photo { get; set; }
  public string Caption { get; set; }
}