Bool没有包含" Any"的定义。并且没有扩展方法

时间:2018-04-14 08:44:41

标签: c# asp.net-core

我刚刚开始使用ASP.NET MVC Core。

到目前为止一切顺利,当我想将一些数据解析为Book模型时,它似乎无法识别Any方法和FirstOrDefault

我的代码如下。有帮助吗?

public string GetDeweyIndex(int id)
{
    if (_context.Books.Any(book => book.Id == id))
    {
        return _context.Books
                       .FirstOrDefault(book => book.id == id).DeweyIndex;
    }
    else 
        return "";
}

预订模型

using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel.DataAnnotations;

namespace LibaryData.Models
{
    public class Book : LibaryAsset
    {
        [Required]
        public string ISBN { get; set; }

        [Required]
        public string Author { get; set; }

        [Required]
        public string DeweyIndex { get; set; }

    }
}

LibaryContent

public class LibaryContext : DbContext    {

        public LibaryContext(DbContextOptions options) : base(options) { }

        public DbSet<Patron> Patrons { get; set; }
        public DbSet<Video> Videos { get; set; }
        public DbSet<Checkout> Checkouts { get; set; }
        public DbSet<CheckoutHistory> CheckOutHistories { get; set; }
        public DbSet<LibaryBranch> LibaryBrances { get; set; }
        public DbSet<BranchHours> BranchHours { get; set; }
        public DbSet<LibaryCard> LibaryCards { get; set; }
        public DbSet<Status> Statuses { get; set; }
        public DbSet<LibaryAsset> LibaryAssets { get; set; }
        public DbSet<Hold> Holds { get; set; }
        public bool Books { get; set; }
    }
}

我遇到了这种错误

  

错误CS1061
  &#39;布尔&#39;不包含&#39;任何&#39;的定义没有延伸方法&#39;任何&#39;接受第一个类型&#39; bool&#39;可以找到(你错过了使用指令或汇编参考吗?)
  LibaryServices
  C:\ Users \ Demir \ Documents \ Visual Studio 2017 \ Projects \ Libary-Managment-System \ LibaryServices \ LibaryAssetsService.cs

     

错误CS1061
  &#39;布尔&#39;不包含&#39; FirstOrDefault&#39;的定义没有扩展方法&#39; FirstOrDefault&#39;接受第一个类型&#39; bool&#39;可以找到(你错过了使用指令或程序集引用吗?)   LibaryServices
  C:\ Users \ Demir \ Documents \ Visual Studio   2017 \ Projects \ Libary-Managment-System \ LibaryServices \ LibaryAssetsService.cs 57 Active

1 个答案:

答案 0 :(得分:2)

从评论转到答案:

错误消息是

  

'bool'不包含'Any'的定义,也没有扩展方法'Any'接受类型'bool'的第一个参数可以找到(你是否缺少using指令或者装配参考?)

强调我的。这是有道理的,bool只是truefalse,它不包含任何项目。

您已展示Books的定义:

public bool Books { get; set; }

这应该具有类型DbSet<Book>,类似于定义上下文中所有其他属性的方式。

(我要猜测:我怀疑你是从DbSet<开始,开始输入boo,让你的IDE自动完成bool而不是{{1}因为Book不被允许而得到错误,并以错误的方式修正了错误。即使这种猜测在你的情况下不正确,我也看到类似的事情发生过,所以它可以作为一个暗示其他人犯了这个错误,无法弄清楚他们为什么写下他们所做的事情。)