Не удается найти объект, так как он не существует или у вас нет прав при обновлении базы данных - PullRequest
0 голосов
/ 11 октября 2019

Миграция прошла успешно, но при попытке обновить базу я получаю эту ошибку. У меня раньше была похожая проблема, потому что я не создал DbSet<> для таблицы. На этот раз это не так.

Мой DBContext:

using System;
using System.Collections.Generic;
using System.Text;
using ArtGalleries.Domain;
using Microsoft.EntityFrameworkCore;

namespace ArtGalleries.Data
{
    public class ArtGalleriesContext:DbContext
    {
        public ArtGalleriesContext(DbContextOptions<ArtGalleriesContext> options):base(options)
        {

        }

        public DbSet<ArtItem> ArtItems { get; set; }
        public DbSet<Artist> Artists { get; set; }
        public DbSet<Company> Companies { get; set; }
        public DbSet<Floor> Floors { get; set; }
        public DbSet<Location> Locations { get; set; }
        public DbSet<Room> Rooms { get; set; }
        public DbSet<User> Users { get; set; }






        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<UserLocation>()
                .HasKey(u => new {u.UserId, u.LocationId});
            //modelBuilder.Entity().
            //modelBuilder.Entity<Company>()
            //    .HasOne(c => c.Company)
            //    .WithOne(pc => pc.Company)
            //    .HasForeignKey(fk => fk.ParentId);
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
                optionsBuilder.UseSqlServer(
                    "Server=(localdb)\\mssqllocaldb;Database=GalleriesDB;Trusted_Connection=True;");
            }
        }
    }
}

Мой класс проблем:

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

namespace ArtGalleries.Domain
{
    public class ArtItem
    {
        public string ArtType { get; set; }
        public Artist Artist { get; set; }
        public int ArtistId { get; set; }
        public int Depth { get; set; }
        public string Description { get; set; }
        public string Framing { get; set; }
        public int Height { get; set; }
        [Required]
        public int Id { get; set; }
        public Location Location { get; set; }
        [Required]
        public int LocationId { get; set; }
        public string Materials { get; set; }
        [Required]
        public string Name { get; set; }
        public User Owner { get; set; }
        public int OwnerId { get; set; }
        public string Picture { get; set; }
        public Room Room { get; set; }
        public int RoomId { get; set; }
        public string Technique { get; set; }
        public int Width { get; set; }
        public int YearOfAcquisition { get; set; }
        public int YearOfCreation { get; set; }
        public Status Status { get; set; }
    }
}

Я не знаком с разрешениями. Я заметил похожую проблему, когда человеку предлагалось найти методы Up () и Down () и поработать с ними. У меня нет такого файла. Это может быть потому, что их проблема была сгенерирована EF, а не EF Core. Аналогичное название проблемы: «Не удается найти объект» dbo.xxxx «потому что он не существует или у вас нет разрешений».

1 Ответ

0 голосов
/ 14 октября 2019

Это было решено путем удаления миграции и добавления новой миграции, без внесения изменений в сделанный код. Weird.

...