Не удалось найти тип или имя пространства имен ‘Dbset’ (вам не хватает директивы using или ссылки на сборку?)

#c# #entity-framework #entity-framework-core #razor-pages

#c# #entity-framework #entity-framework-core #razor-страницы

Вопрос:

Я пытаюсь использовать базу данных на страницах Razor. Но я получаю эту ошибку при использовании команды dotnet run: «ошибка CS0246: не удалось найти тип или имя пространства имен’Dbset<>’ (вам не хватает директивы using или ссылки на сборку?)» Вот код:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Logging;
using Microsoft.EntityFrameworkCore;

namespace myWebApp.Models
{
    public class ConnectionstringClass: DbContext
    {
        public ConnectionstringClass(DbContextOptions<ConnectionstringClass> options) :base(options)
        {

        }
        public Dbset<Reservation> Reservation {get; set;}
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Reservation>().ToTable("Reservation");
            
        }
    }
}
  

И вот ссылки на пакеты:

   <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" Version="3.1.1"/>
    <PackageReference Include="Npgsql" Version="4.1.3.1" />
    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.1.4" />
    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.Design" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0"/>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.0"/>
    <PackageReference Include="EntityFramework" Version="5.0.0"/>
  </ItemGroup>

 <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0"/>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0"/>
 </ItemGroup>
  

Комментарии:

1. Измените Dbset на DbSet

Ответ №1:

Да, у вас опечатка. Используйте DbSet<Reservation> вместо Dbset<Reservation> этого .

Ответ №2:

  public DbSet<Reservation> Reservation {get; set;}
  

правильно. не

 public Dbset<Reservation> Reservation {get; set;}