我有以下型号:
public class User
{
public string UserId { get; set; }
public string UserName { get; set; }
public List<Membership> Membership { get; set; }
public bool IsRegistered
{
get { return !String.IsNullOrEmpty(UserName); }
}
}
public class Membership
{
public string MembershipId { get; set; }
public User User { get; set; }
}
在我的Membership
实体存储库中,我尝试通过以下操作对集合进行排序,其中entries
是IQueryable<Membership>
,而orderBy
是等于{ x => x.User.IsRegistered }
的LamdaExpression:
ordered = Queryable.OrderBy(ordered, orderBy);
尝试执行此操作时,出现以下错误:
LINQ不支持指定的类型成员“ IsRegistered”
实体。仅初始化器,实体成员和实体导航
支持属性。
如何通过不在数据库中的属性对集合进行排序?
提前致谢。
参考方案
由于IsRegistered是客户端功能,因此您需要对对象使用LINQ进行排序。您可以通过枚举将基于SQL的LINQ转换为基于对象的LINQ。然后,一旦它成为对象上的LINQ,您就可以使用对象上的LINQ来对对象的OrderBy进行排序。常用的方法是调用ToList,例如:
ordered = Queryable.ToList().OrderBy(ordered, orderBy);
如果要对数据库进行排序,则需要将客户端代码转换为与SQL兼容的代码,例如:
ordered = Queryable.OrderBy(ordered, (x=>x.User.UserName!=null && x.User.UserName!=''));
Java中的OrderByDecending(LINQ)等效项 - java嗨,我是一名使用Java的C#开发人员。问题很简单:我如何才能将下面的c#代码写入Java并仍能正常工作:myCoffeeList.OrderByDescending(x => x.Name?.ToLower()?.Trim() == sender.Text.ToLower()?.Trim())); 我的sender.Text基本上是一个文本框。文本的…
使用Entity Framework Core(2.1)调用标量函数的最佳实践 - c#我经常需要从Web应用程序(ASP.NET Core / EF Core)中调用在SQL Server上定义的标量函数。由于这些函数只是简单的辅助函数,因此我也使用了许多辅助函数,因此我使用了通用模式来调用这些标量函数-借助EF Core 2.1可用的新查询类型。由于我是EF Core的新手,所以我的问题是这种模式是否会引起问题,并且/或者是否存在调用标量函…
LINQ RemoveAll代替循环 - c#我有两个for循环,用于从列表中删除项目。我正在为这些循环寻找等效的LINQ语句for (Int32 i = points.Count - 1; i >= 0; i--) { for (Int32 j = touchingRects.Count - 1; j >= 0; j--) { if (touchingRects[j].HitTest(po…
Play Framework 2中的系统类加载器 - java我使用的是Play 2.2.2,我有一个外部jar,它试图从同一jar的根目录加载XML资源。它使用System.class.getClassLoader().getResource("/Blabla.xml")这样做。这失败了,因为显然Play拥有一个奇怪的类加载器层次结构:ReloadableClassLoader和几个父级。该层次结…
如何以编程方式将ListView滚动到最后一个元素-Compact Framework - c#我正在使用Windows Mobile 6.1上的3.5 Compact Framework开发应用程序。我有一个ListView,添加项目时想自动滚动此列表。我能怎么做? 参考方案 listView.EnsureVisible(listView.Items.Count - 1);