我有两张桌子:
表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;
}
}
}
我不相信我在子类型中加载类型的方式是正确的。
在视图中我需要为子类型创建一个表,但我还需要该子类型的类型信息。
在子类型中获取类型信息的最佳方法是什么?
答案 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; }
}