1

次の列を含む「PublicUserOfferingSignUp」というテーブルがあります。

  • ID
  • PublicUserId - PublicUser.Id への外部キー
  • オファリング ID
  • 作成した

私のアプリケーションは Entity Framework を使用していますが、PublicUserOfferingSignUp テーブルから PublicUser テーブルに結合する方法に行き詰まっています。

PublicUserOfferingSignUp レコードのリストを取得したいのですが、PublicUser テーブルの Name 列で並べ替えられています。

現在、私はこれを持っています....

return DataBase.PublicUserOfferingSignUps.Join(PublicUser, 

しかし、私はそれを解決できないようです、どんなアイデアも....

スティーブン

誰でも助けてくれますか。

4

2 に答える 2

4

そんな感じ

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

編集:@M.Schenkelが気づいたように、

public virtual PublicUser PublicUser {get;set;}

あなたのPublicUserOfferingSignUpモデルで

クエリは次のようになります

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

簡単ですよね?

于 2012-05-09T11:46:36.230 に答える
0

Entity Framework を使用する場合、パブリック ユーザーは PublicUserOfferingSignUp エンティティのプロパティである必要があります。そうでない場合は、LINQ クエリを記述してそれらを結合できます。例えば:

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

(このコードはテストされていませんが、アイデアが得られるはずです)。

于 2012-05-09T11:46:12.767 に答える