私のコンテキストには次のエンティティがあります。
public class Asset
{
public int AssetId { get; set; }
public Registration Registration { get; set; }
[Required]
[Display(Name = "Asset Type")]
public AssetType AssetType { get; set; }
[Required]
[Range(Constants.SerialNumberStart, Constants.SerialNumberEnd)]
[DisplayFormat(DataFormatString = "{0:d8}")]
public int SerialNumber { get; set; }
[Required]
[Range(Constants.EquipNumberStart, Constants.EquipNumberEnd)]
[DisplayFormat(DataFormatString = "{0:d12}")]
public long EquipNumber { get; set; }
[Required]
[Display(Name = "Profile")]
[Range(Constants.ProfileStart, Constants.ProfileEnd)]
[DisplayFormat(DataFormatString = "{0:d2}")]
public int Profile { get; set; }
}
public class AssetType
{
public int AssetTypeId { get; set; }
public List<Asset> Asset { get; set; }
[Required]
[Display(Name = "Asset Type")]
[StringLength(40)]
public string AssetTypeFullName { get; set; }
[Required]
[Display(Name = "Asset Alias")]
[StringLength(8)]
public string AssetTypeShortName { get; set; }
}
データベースをシードしましたが、すべて問題ないように見えます。AssetType 外部キーは、AssetType テーブル データへのインデックスを適切に表示します。
しかし、以下のコードでビューのデータを準備しようとすると、AssetType キー/データが null になります。
public ActionResult Index()
{
Logger.Debug("Index");
RegistrationServerContext dbNotLazy = new RegistrationServerContext();
return View(dbNotLazy.Assets.ToList());
}
ブレーク ポイントを設定して dbNotLazy.Asset データを調べると、AssetType 外部キーが null です。
これは遅延読み込みに関係しているのではないかと考えましたが、ご覧のとおり、View 呼び出しの前に新しいコンテキストを作成しています。私は何を間違っているのでしょうか?