【问题标题】:Bool doesn't contain a definition for "Any" and no extension methodBool 不包含“Any”的定义,也没有扩展方法
【发布时间】:2018-09-24 13:18:43
【问题描述】:

我刚开始使用 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; }

    }
}

图书馆内容

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
“bool”不包含“Any”的定义,并且找不到接受“bool”类型的第一个参数的扩展方法“Any”(您是否缺少 using 指令或程序集引用?)
图书馆服务
C:\Users\Demir\Documents\Visual Studio 2017\Projects\Libary-Managment-System\LibaryServices\LibaryAssetsService.cs

错误 CS1061
“bool”不包含“FirstOrDefault”的定义,并且找不到接受“bool”类型的第一个参数的扩展方法“FirstOrDefault”(您是否缺少 using 指令或程序集引用?) 图书馆服务
C:\Users\Demir\Documents\Visual Studio 2017\Projects\Libary-Managment-System\LibaryServices\LibaryAssetsService.cs 57 活动

【问题讨论】:

  • 能否在_context 对象中包含Books 的定义?
  • 该错误表明您在_context.Books 上调用的.Any / .FirstOrDefaultbool。不应该,它应该类似于DbSet&lt;Book&gt;。你能说明它是如何定义的吗?
  • 当然,我发布了 book.cs 模型
  • public bool Books { get; set; } -- 是的,这解释了错误。这是某种错字还是你真的想要DbSet&lt;Book&gt;以外的东西?
  • 谢谢@hvd 我没有在我的模型中看到这个愚蠢的错误。现在工作:)

标签: c# asp.net-core


【解决方案1】:

从 cmets 转到答案:

错误信息是说

'bool' 不包含“Any”的定义,并且找不到接受“bool”类型的第一个参数的扩展方法“Any”(您是否缺少 using 指令或汇编参考?)

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

你已经展示了Books的定义:

public bool Books { get; set; }

这应该是 DbSet&lt;Book&gt; 类型,类似于您上下文中所有其他属性的定义方式。

(我要猜测一下:我怀疑您从 DbSet&lt; 开始,开始输入 boo,让您的 IDE 将其自动完成为 bool 而不是 Book,出现错误是因为 @ 987654331@ 是不允许的,并以错误的方式修复了该错误。即使这个猜测在你的情况下是不正确的,我以前也看到过类似的事情发生,所以它可以作为其他人犯这个错误的提示,并且可以不知道他们为什么写他们所做的。)

【讨论】:

    猜你喜欢
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 2014-03-14
    • 2018-12-13
    • 1970-01-01
    相关资源
    最近更新 更多