我正在使用实体框架构建asp.net mvc应用程序,并且尝试按列表排序。通过动态更改名称,可以根据该名称存在数据库中。

bids = bids.OrderBy(s => s.PublisherName);


和对象:

public string PublisherName { get { db.Publishers.Find(pubid).Name; } }


但是我遇到一个例外:


  LINQ to Entities不支持指定的类型成员'PublisherName'。仅支持初始化程序,实体成员和实体导航属性。


我能做什么?以及如何使它起作用?

谢谢。

最佳答案

仅初始化器,实体成员和实体导航属性
  支持。


db.Publishers.Find(pubid).Name;既不是初始化程序,也不是实体成员,也不是导航属性。

一种可能的方法是使用AsEnumerable()将其带入内存:

bids = bids.AsEnumerable().OrderBy(s => s.PublisherName);


只要出价是一小部分对象,这将完美地工作。

09-19 08:14