私の特定のアプリケーションは、Entity Framework を使用した ASP.NET MVC アプリです。
Entity1 への参照 (* から 1) を含むオブジェクト Entity0 があります...
public class Entity_0
{
public int ID { get; set; }
public int Entity_1_ID { get; set; }
public Entity_1 Entity_1 { get; set; }
}
Entity_0 にもいくつかのロジックがありますが、このロジックでは Entity_1 が null でないことが必要です...
public Entity_2 GetEntity_2()
{
return new Entity_2() { Number = Entity_1.Value * 10 };
}
コントローラーでモデル バインディングを介して Entity_0 の新しいインスタンスが作成されると、Entity_1_ID プロパティが設定されますが、Entity_1 ナビゲーション プロパティは、データベースに永続化されるまで null のままです。
GetEntity_2() を呼び出して、Entity_0 と Entity_2 を 1 つの作業単位としてデータベースに保存する必要があります。これは、関数を呼び出す前に、リポジトリから Entity_1 を手動で取得して Entity_0 に割り当てる必要があることを意味します。
私が検討したもう 1 つのオプションは、Entity_1 を GetEntity_2 メソッドのパラメーターにすることですが、それ以外の場合、そのメソッドが Entity_1 と呼ばれる場合は null にならないため、パラメーターを要求するのは冗長です。
したがって、明らかにすべてが現在機能していますが、私の質問は、a) null 参照例外をスローする可能性のあるメソッドを持っているか、b) 一部のみを使用する必要があるメソッドパラメーターを指定することにより、OOP 設計規則に違反しているかどうかです。時間。
ナビゲーション プロパティを手動で割り当てなければならないのは、本当に困ります。どうすればこれを改善できるかについて、いくつかの提案があることを願っています。
ありがとう!