2012-05-09 50 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

是的,您的问题相当清楚...尝试一下,如果我错过了某些内容,我会很乐意改正;) –