0

データベースに Project と ProjectComments という 2 つのテーブルがあります。

ジェネレーターを使用して、これら 2 つのテーブルを Entity Framework モデルにマップしました。

各プロジェクトには多くの ProjectComments があります。Project クラスに GetProjectComments 関数を記述したいので、ProjectComments をナビゲーション プロパティとして Project に追加したくありません。

ところで、私は ProjectComments テーブルの IsDeleted 列の GetProjectComments 関数で決定することができます。ProjectComments テーブルから行を実際に削除するわけではないため、削除する必要がある場合にのみ IsDeleted = true にするため、GetProjectComments 関数で IsDeleted = true の ProjectComments を返すべきではありません。

今までは大丈夫です。問題は、Project クラスの GetProjectComments 関数で、同じプロバイダーの SaveChanges メソッドを呼び出すパラメーターとしてプロバイダー (コンテキスト オブジェクト) が必要なことです。

GetProjectComments関数のパラメーターとしてプロバイダーオブジェクトを要求せずにこれらのアプローチを行う方法はありますか? 私は何か間違ったことをしていますか??

お返事お待ちしております。どうもありがとう。

4

1 に答える 1

2

より簡単に :

Project クラスに ProjectComments ナビゲーション プロパティを追加します (ジェネレーターに任せてください)。

部分的な "Project" クラスに新しいプロパティを追加する

public IEnumerable<ProjectComments> LivingComments {
   get {
      return this.ProjectComments != null 
         ? this.ProjectComments.Where(m => !m.IsDeleted) 
         : null;
   }
}

EDITまたはdanludwigが述べたように

public IEnumerable<ProjectComments> GetLivingComments() {
     return this.ProjectComments != null 
         ? this.ProjectComments.Where(m => !m.IsDeleted) 
         : null;
}
于 2012-08-02T16:13:00.433 に答える