繁体   English   中英

C# - 实体框架 - Join方法

[英]C# - Entity Framework - Join method

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

  • ID
  • PublicUserId - PublicUser.Id的外键
  • OfferingId
  • 创建

我的应用程序正在使用实体框架,但我不知道如何从PublicUserOfferingSignUp表加入到PublicUser表。

我想获取PublicUserOfferingSignUp记录的列表,但是按PublicUser表的Name列排序。

目前我有这个....

return DataBase.PublicUserOfferingSignUps.Join(PublicUser, 

但我似乎无法解决,任何想法....

史蒂芬

任何人都可以帮忙。

这样的事情

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

更容易,不是吗?

使用实体框架时,公共用户应该是PublicUserOfferingSignUp-entity的属性。 如果没有,您可以编写LINQ查询来加入它们。 例如:

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

(此代码未经测试,但应该给你一个想法)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM