#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;}