1

我有一个名为“PublicUserOfferingSignUp”的表,其中包含以下列。

  • ID
  • PublicUserId - PublicUser.Id 的外键
  • 提供 ID
  • 已创建

我的应用程序正在使用实体框架,但我不知道如何从 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

当您使用实体框架时,公共用户应该是您的 PublicUserOfferingSignUp-entity 的一个属性。如果没有,您可以编写一个 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 回答