Linq 实体框架:连接方法

Linq 实体框架:连接方法,linq,entity-framework,join,Linq,Entity Framework,Join,我已经花了足够的时间,所以我需要stackoverflow的帮助 这是一个实体 Entity: Asset Field: AssetVersionID (int) PK Field: AssetID (int) FK Field: ReleaseTimestamp (DateTime) 我的任务是选择具有唯一AssetID和最新发布时间戳的资产。 基本上我需要这样的函数 public IQueryable<Asset> GetAssets(List<int> asse

我已经花了足够的时间,所以我需要stackoverflow的帮助

这是一个实体

Entity: Asset 
Field: AssetVersionID (int) PK
Field: AssetID (int) FK
Field: ReleaseTimestamp (DateTime)
我的任务是选择具有唯一AssetID和最新发布时间戳的资产。 基本上我需要这样的函数

public IQueryable<Asset> GetAssets(List<int> assetIds)
如何使用EF和LINQ

我试过这个:

public IQueryable<Asset> GetAssets(List<int> assetUIds)
{
 IQueryable<Asset> assets = _context.Assets.Where(a => assetUIds.Contains(a.UID));
 var ff = assets.GroupBy(a => a.UID, a => a,
              (uid, p2) => new {KEY = uid, rel = p2.Max(p2a => p2a.ReleaseTimestamp)});
 IQueryable<Asset> assets2 = _context.Assets;

 var assets3 = from ass1 in assets2
          join ass2 in ff on new {ass1.UID, ass1.ReleaseTimestamp} equals new {ass2.KEY, ass2.rel}
          select ass1;
 return assets3;
}
但事实并非如此

join ass2 in ff on new {ass1.UID, ass1.ReleaseTimestamp} equals new {ass2.KEY, ass2.rel}
一如既往:)


请帮忙

要加入的表达式必须相同。将其更改为:

join ass2 in ff on new {KEY = ass1.UID, rel = ass1.ReleaseTimestamp} equals new {ass2.KEY, ass2.rel}
join ass2 in ff on new {ass1.UID, ass1.ReleaseTimestamp} equals new {ass2.KEY, ass2.rel}
join ass2 in ff on new {KEY = ass1.UID, rel = ass1.ReleaseTimestamp} equals new {ass2.KEY, ass2.rel}