2012-05-09 10 views
1

私は以下の列を含む "PublicUserOfferingSignUp"というテーブルを持っています。C# - Entity Framework - 参加方法

  • 同上
  • PublicUserId - 私のアプリケーションは、Entity Frameworkのを使用しているが、私はからの参加方法で立ち往生しています

を作成しPublicUser.Idへの外部キー

  • OfferingId
  • PublicUserOfferingSignUpテーブルをPublicUserテーブルに追加します。

    PublicUserOfferingSignUpレコードのリストを取得したいのですが、PublicUserテーブルのName列で注文したいとします。

    は現在、私は

    return DataBase.PublicUserOfferingSignUps.Join(PublicUser, 
    

    ....これを持っているしかし、私は、任意のアイデアを、それを動作するように見えることはできません....

    スティーブン

    誰でも助けることができます。

  • +0

    [エンティティフレームワーク結合]の複製が可能です。(0120-18753/entity-framework-join) –

    答えて

    0

    エンティティフレームワークを使用する場合、パブリックユーザーはPublicUserOfferingSignUp-entityのプロパティである必要があります。そうでない場合は、LINQクエリを作成してそれらを結合することができます。例:

    var result = from pu in context.PublicUserOfferingSignUp 
    join u in context.PublicUser on u.id equals pu.PublicUserId 
    select pu; 
    

    (このコードはテストされていませんが、あなたにはそのアイデアが必要です)。その

    DataBase.PublicUserOfferingSignUps.Join(Database.PublicUsers, 
        puosu => puosu.PublicUserId,//PublicUserOfferingSignUps key 
        pu => pu.Id,//PublicUser key 
        (puosu, pu) => new { 
         publicUsersOfferingSignUp = puosu,//we take all data from PubliUserOfferingSignUps 
         puName = pu.Name//and Name from PublicUser 
         }) 
    .OrderBy(x => x.puName)//we order by PublicUser Name 
    .Select(x => x.publicUsersOfferingSignUp);//we take only the PublicOfferingSignUps 
    

    編集などの

    4

    何か:@ M.Schenkelが気づいたとして、クエリは次のようになり、あなたのPublicUserOfferingSignUpモデル

    をして

    public virtual PublicUser PublicUser {get;set;} 
    

    を持つことが容易になるだろう

    DataBase.PublicUserOfferingSignUps 
    .OrderBy(puosu => puosu.PublicUser.Name); 
    

    は簡単ですか?

    +0

    これは何を返しますか?私はPublicUserOfferingSignUpレコードのリストを返したい – swade1987

    +0

    はい、あなたの質問はかなり明確でした...試してみてください。もし私が何かを見逃したら、私は訂正してうれしく思います;) –

    関連する問題