Невозможно вставить явное значение для столбца идентификаторов в таблице Customers, Areas, Projects когда параметр IDENTITY_INSERT имеет значение OFF
Пишу учебный проект. Возникла данная проблема - обшарил все сайты и форумы, сравнил свою БД с БД одногруппника, но так и не могу понять, что не так и как решить. Использую EF Core 8.0.2 и WPF MVVM.
Есть площадь, в которую нужно добавить точки (координаты площади), но при нажатии на кнопку добавления вылетает Exeption сразу с тремя таблицами. Уже пробовал SET IDENTITY_INSERT <имя таблицы> ON, [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] и пересоздавать БД, но ничего не помогает.
Код моделей:
public class Customer : PropChange {
private int id;
public int Id {
get => id;
set { id = value; OnPropertyChanged(nameof(Id)); }
}
private string? name;
public string? Name {
get => name;
set { name = value; OnPropertyChanged(nameof(Name)); }
}
private string email;
public string Email {
get => email;
set { email = value; OnPropertyChanged(nameof(Email)); }
}
private ObservableCollection<Project> projects;
public ObservableCollection<Project> Projects {
get => projects;
set { projects = value; OnPropertyChanged(nameof(Projects)); }
}
}
public class Project : PropChange {
private int id;
public int Id {
get => id;
set { id = value; OnPropertyChanged(nameof(Id)); }
}
private string? name;
public string Name {
get => name;
set { name = value; OnPropertyChanged(nameof(Name)); }
}
private string? address;
public string? Address {
get => address;
set { address = value; OnPropertyChanged(nameof(Address)); }
}
private Customer customer;
public Customer Customer {
get => customer;
set { customer = value; OnPropertyChanged(nameof(Customer)); }
}
private ObservableCollection<Area> areas;
public ObservableCollection<Area> Areas {
get => areas;
set { areas = value; OnPropertyChanged(nameof(Areas)); }
}
}
public class Area : PropChange {
private int id;
public int Id {
get => id;
set { id = value; OnPropertyChanged(nameof(Id)); }
}
private string? name;
public string? Name {
get => name;
set { name = value; OnPropertyChanged(nameof(Name)); }
}
private Project project;
public Project Project {
get => project;
set { project = value; OnPropertyChanged(nameof(Project)); }
}
private ObservableCollection<AreaCoords> coords;
public ObservableCollection<AreaCoords> Coords {
get => coords;
set { coords = value; OnPropertyChanged(nameof(Coords)); }
}
private ObservableCollection<Profile> profiles;
public ObservableCollection<Profile> Profiles {
get => profiles;
set { profiles = value; OnPropertyChanged(nameof(Profiles)); }
}
}
Код AreaVM:
void AddCoord(object obj) {
var coord = new AreaCoords();
db.AreaCoords.Add(coord);
db.SaveChanges(); <-- Exeption!
SelectedCoord = coord;
OnPropertyChanged(nameof(Area));
}
Класс контекста:
public class AggContext : DbContext {
public DbSet<Customer> Customers { get; set; }
public DbSet<Project> Projects { get; set; }
public DbSet<Area> Areas { get; set; }
public DbSet<AreaCoords> AreaCoords { get; set; }
public DbSet<Profile> Profiles { get; set; }
public DbSet<ProfileCoords> ProfileCoords { get; set; }
public DbSet<Picket> Pickets { get; set; }
public DbSet<Operator> Operators { get; set; }
public DbSet<Measuring> Measurings { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
optionsBuilder.UseSqlServer($@"Server=.;Database=AggAppNew;Trusted_Connection=True;TrustServerCertificate=True;");
//optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=AgeenkovAppNew;Trusted_Connection=True;");
}
}