此错误即将出现在我的代码中。... “ ICollection”不包含“任何”的定义 并且没有扩展方法“ Any”接受第一个参数 可以找到类型为“ ICollection”的(您是否缺少 使用指令还是程序集引用?)
// my BooksController.cs Code
public ActionResult Index()
{
var books = db.Books.Include(h => h.BorrowHistories)
.Select(b => new BookViewModel
{
BookId = b.BookId,
Author = b.Author,
Publisher = b.Publisher,
SerialNumber = b.SerialNumber,
Title = b.Title,
IsAvailable = !b.BorrowHistories.Any(h => h.ReturnDate == null) //Error is coming in this line
}).ToList();
return View(books);
}
我还有一个类名称BookViewModel.cs,它具有一个功能public bool IsAvailable。
// my Book.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Collections;
namespace LibraryManagmentSystem.Models
{
public class Book
{
public int BookId { get; set; }
[Required]
public string Title { get; set; }
[Required]
[Display(Name = "Serial Number")]
public string SerialNumber { get; set; }
public string Author { get; set; }
public string Publisher { get; set; }
public ICollection BorrowHistories { get; set; }
}
}
答案 0 :(得分:1)
我认为您需要将您的书本课编辑为类似的内容:
public ICollection<YourSubClass> BorrowHistories { get; set; }
代替:
public ICollection BorrowHistories { get; set; }
因为LinQ需要一种类型才能正常工作。我看不到您的BorrowHistories模型,所以我不能说是否足够。