私はこの質問が何度か前に尋ねられたことは知っていますが、私の側では奇妙な振る舞いをしています。EF 6 codde first - One To Many Mapping - ICollection always null
私はまずEF6とコードで.Netアプリケーションを構築しています。
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public int RefId { get; set; }
public int GradeId { get; set; }
public Grade Grade { get; set; }
}
public class Grade
{
private string _name;
public int GradeId { get; set; }
public string GradeName { get; set; }
public ICollection<Student> Students { get; set; }
}
私は遅延読み込みがEF 4を超えて、デフォルトで有効になっていることを理解し、ほとんどの仕事がある解決策を削除するには次のように私は(これらは、例えば、クラスですが、私はまったく同じ構造を持っている)私のクラスを定義しエンティティからの仮想キーワード(非仮想プロパティ)。
私の場合、Gradeクラスのgetterメソッドでカスタムコードを設定したいが、ICollection<Student> Students
は常にnullです。例えば
:
public string GradeName
{
get
{
_name = Students.FirstOrDefault(s => s.GradeId == GradeId &&
s.RefId == 2).Name;
if (string.IsNullOrWhiteSpace(_name))
{
_name = Name;
}
return _name;
}
set => _name = value;
}
私はすべてを可能にしようとした、何も助けません。あなたが私にこの問題を解決するのを手助けできるなら、それは素晴らしいでしょう、ありがとう!
'public' ** virtual **' ICollection Students {get;セット; } ' –
これは動作しませんでした。 getterメソッドGradeNameでは、Studentsは常にnullです! –
コンテキストからフェッチされた 'GradeName'を呼び出す' Grade'インスタンスはありますか? –