2012-01-27 16 views
0

EF 4.1でデータベースファーストを使用してC#アプリケーションを構築する。私の質問は、拡張メソッドを使用してDbContextオブジェクトを介して値を返すことを中心にしています。Entity Framework 4.1 DbContext部分クラスの拡張

私のエンティティは、DbContextジェネレータによって部分クラスとして作成されました。私はプロジェクトテーブルと関連するマネージャーテーブルを持っており、コンテキストオブジェクトを通じてLINQクエリを実行し、プロジェクトと割り当てられたプロジェクトマネージャにアクセスできます。 マネージャーテーブルにファーストネームとラストネームのフィールドがある場合は、ファーストネームフィールドとラストネームフィールドを連結する拡張プロパティを作成して、プロジェクトをクエリしてマネージャリレーションを使用すると、FullNameが返されます。複合価値?

この例では、プロジェクトのリストで埋め可変_ プロジェクトは、LINQクエリを使用して作成した:

Fields["manager"].Value = _projects[i].Project.ProjectManager.FullName 

Iは方法にフルネーム性をmaketheとマネージャのIDを渡すことができしかしwouldnそれを追加のクエリにすることはできませんか?助けてくれてありがとう。

答えて

1

あなたは常にProjectManagerナビゲーションプロパティにアクセスすることになるだろうことを、あなたはInclude方法に

var projects = (from p in ctx.Projects 
       select p) 
        .Include(p => p.ProjectManager) 
        .ToList(); 

を使用して最初のクエリに含めることができます知っているなら、あなたはあなたに次のプロパティを追加することができますManager(生成されたものとは別々のファイルに)クラス

public string FullName 
{ 
    get { return FirstName + " " + LastName; } 
} 

とアクセスそれは

を使用して

あなたの質問が間違っている場合は、あなたのコードがあなたの提案された拡張メソッドを使用しているように見えるかどうかの例を提供できますか?

+0

お返事ありがとうございます。 Managerの部分クラスを拡張しているため、ファーストネームとファーストネームが使用可能であることを認識しました。あなたが書いた物件はスポットにあります。 –

関連する問題