2012-05-09 48 views
1

我有一個名爲「PublicUserOfferingSignUp」的表,其中包含以下列。C# - 實體框架 - 加入方法

  • 編號
  • PublicUserId - 外鍵PublicUser.Id
  • OfferingId
  • 創建

我的應用程序使用實體框架,但我不讓自己被如何從加盟PublicUserOfferingSignUp表到PublicUser表。

我想獲取PublicUserOfferingSignUp記錄的列表,但是按PublicUser表的Name列排序。

目前我有這個....

return DataBase.PublicUserOfferingSignUps.Join(PublicUser, 

但我似乎無法去解決它,任何想法....

史蒂芬

任何人可以幫助。

+0

可能重複的[實體框架連接](http://stackoverflow.com/questions/3044153/entity-framework-join) –

回答

0

當您使用實體框架時,公共用戶應該是您的PublicUserOfferingSignUp實體的屬性。如果沒有,你可以編寫一個LINQ查詢來加入它們。例如:

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

(此代碼未經測試,但應該給你的想法)。

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); 

更容易,不是嗎?

+0

那麼這是什麼回報?我想返回一份PublicUserOfferingSignUp記錄列表 – swade1987

+0

是的,您的問題相當清楚...嘗試一下,如果我錯過了某些內容,我會很樂意改正;) –