CLI Entity Framework не может получить информацию от типа DbContext - PullRequest
0 голосов
/ 12 ноября 2018

Issue

В CLI я использую dotnet dbcontext list , чтобы увидеть, может ли EF увидеть мой dbcontext ( TestCoreASP.Data.TestCoreDbContext ), что может. После этого я пытаюсь просмотреть информацию из этого DbContext с помощью dotnet ef dbcontext info

Затем я получаю сообщение об ошибке ниже. Однако нигде в моем коде я не создаю сущность с именем FilterDescriptor. Что это?

  • EF CLI Версия 2.1.4

  • ASP.NET Core 2.1

Сообщение об ошибке

Не найдено подходящего конструктора для типа сущности 'FilterDescriptor'. Следующие параметры не могут быть связаны со свойствами объекта: 'filter', 'FilterScope'

Модель DbContext

public class TestCoreDbContext : DbContext
    {
        public TestCoreDbContext(DbContextOptions options) 
            : base (options)
        {

        }

        public DbSet<Restaurantcs> Restaurants { get; set; }
    }

Класс команд SQL

 public class SqlRestaurantData : IResturantData
    {
        private TestCoreDbContext _context;

        public SqlRestaurantData(TestCoreDbContext context)
        {
            _context = context;
        }

        public Restaurantcs Add(Restaurantcs newRest)
        {
            _context.Restaurants.Add(newRest);
            _context.SaveChanges();
            return newRest;
        }

        public IEnumerable<Restaurantcs> GetAll()
        {
           return _context.Restaurants.OrderBy(r => r.Name);
        }

        public Restaurantcs GetSingle(int id)
        {
            return _context.Restaurants.FirstOrDefault(r => r.Id == id);
        }
    }

Свойства контроллера

public class Restaurantcs : Controller
{
    public int Id { get; set; }
    [Display(Name="Resturant Name")]
    [Required, MaxLength(80)]
    public string Name { get; set; }
    public CuisineType Cuisine { get; set; }
}    

StartUP

   private IConfiguration _configuration;

        public Startup(IConfiguration configuration)
        {
            _configuration = configuration;
        }
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton<IGreeter, Greeter>();
            services.AddDbContext<TestCoreDbContext>(
                options => options.UseSqlServer(_configuration.GetConnectionString("TestCoreASP")));
            services.AddScoped<IResturantData, SqlRestaurantData>();


            services.AddMvc();
        }
...