获取相关实体对象的最佳方式

时间:2015-03-11 07:44:08

标签: c# .net entity-framework

我有两张桌子:

表1称为类型具有id和名称
表2称为子类型具有id,名称和typeId

TypeId是对表1的引用,并创建了一个外键。

我的对象:

public class BType
{
    [HiddenInput(DisplayValue = false)]
    [Key]
    public int Id { get; set; }
    [Required(ErrorMessage = "Naam is verplicht")]
    public string Naam { get; set; }
}

public class SubType
{
    [HiddenInput(DisplayValue = false)]
    [Key]
    public int Id { get; set; }
    [Required(ErrorMessage = "Naam is verplicht")]
    public string Naam { get; set; }
    [Required(ErrorMessage = "Type is verplicht")]
    public int TypeID { get; set; }

    private BType _Type = null;

    public BType Type
    {
        get {
            if (this._Type == null)
            {
                BTypeContext repo = new BTypeContext();
                this._Type = repo.BTypes.Where(x => x.Id == this.TypeID).FirstOrDefault();
            }
            return this._Type;
        }
    }

}

我不相信我在子类型中加载类型的方式是正确的。

在视图中我需要为子类型创建一个表,但我还需要该子类型的类型信息。

在子类型中获取类型信息的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以将相关类型设置为虚拟,以便EF懒洋洋地加载相关数据 为清晰起见,我添加了ForeignKey属性

public class SubType
{
  [HiddenInput(DisplayValue = false)]
  [Key]
  public int Id { get; set; }

  [Required(ErrorMessage = "Naam is verplicht")]
  public string Naam { get; set; }

  [Required(ErrorMessage = "Type is verplicht")]
  public int TypeID { get; set; }

  [ForeignKey("TypeID")]
  public virtual BType Type { get; set; }
}