【问题标题】:C# MVC ViewModel Property OrderBy ExceptionC# MVC ViewModel 属性 OrderBy 异常
【发布时间】:2009-12-23 20:17:27
【问题描述】:

我有一组要排序的 ViewModel 对象。

这是我的 ViewModel 类的简略视图:

public class BookIndexFormViewModel
{
    //Properties
    public Book Book                        { get; set; }

    //Constructor
    public BookIndexFormViewModel(Book book)
    {
        Book = book;
    }

这是我的存储库中实例化我的集合的方法:

public IQueryable<BookIndexFormViewModel> GetAllBooks()
    {
        return db.Books.Select(b => new BookIndexFormViewModel(b));
    }

这是我尝试订购集合的简略视图,这会导致异常。

var books = _bookRepository.GetAllBooks();
books.OrderBy(x => x.Book.Name);

这是抛出的异常:

The member 'TheBibliophile.Controllers.BookIndexFormViewModel.Book' has no supported translation to SQL.

我被这个难住了。当我收到此异常时,我不会尝试调用方法,就像我在网上看到的大多数情况一样。我只是想按我的 ViewModel 中的属性进行排序。有什么建议吗?

【问题讨论】:

    标签: c# linq-to-sql model-view-controller viewmodel


    【解决方案1】:

    这会导致错误,因为您正在执行的操作 new BookIndexFormViewModel(b) 无法映射到 SQL。您想在用 BookIndexFormViewModel 包装 Book 之前进行排序。像这样的东西应该在 GetAllBooks() 中工作

    return db.Books.OrderBy(x => x.Name).ToList().Select(b => new BookIndexFormViewModel(b));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      相关资源
      最近更新 更多