Когда я использую _context.SaveChanges()
в конце моего DataInitializer
, он выбрасывает пользовательскую ошибку, которую я написал для установщика (код здесь) для объекта в другом объекте.
public Locatie Locatie
{
get => _locatie;
set
{
if (value is null)
throw new ArgumentException(Settings.locatieLeeg);
else
_locatie = value;
}
}
Однако, если я избавлюсь от оператора if для нуля, он просто перейдет к следующему установщику, который также проверяет наличие нуля. Это заставляет меня верить, что все мои подчиненные объекты установлены в нуль. Это не было проблемой раньше, и теперь я не знаю, почему честно. Единственные изменения, которые я реализовал с тех пор, - это то, что я добавил новую таблицу, не связанную с объектом, с установщиком, который выдает ошибку.
Вывод консоли застревает здесь:
Информация:
Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (52ms) [Parameters=[@p0='?' (Size = 100), @p1='?' (Size = 4000), @p2='?' (Size = 100), @p3='?' (Size = 6), @p4='?' (Size = 100)], CommandType='Text', CommandTimeout='30']
SET NOCOUNT ON;
INSERT INTO [Locatie] ([Gemeente], [Huisnummer], [Land], [Postcode], [Straat])
VALUES (@p0, @p1, @p2, @p3, @p4);
SELECT [LocatieId]
FROM [Locatie]
WHERE @@ROWCOUNT = 1 AND [LocatieId] = scope_identity();
информация:
Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (31ms) [Parameters=[@p5='?' (Size = 320), @p6='?' (DbType = Int32), @p7='?' (Size = 14)], CommandType='Text', CommandTimeout='30']
SET NOCOUNT ON;
INSERT INTO [ContactPagina] ([Email], [LocatieId], [Telefoonnummer])
VALUES (@p5, @p6, @p7);
SELECT [ContactPaginaId]
FROM [ContactPagina]
WHERE @@ROWCOUNT = 1 AND [ContactPaginaId] = scope_identity();
Тем не менее, выходные данные, похоже, меняются в зависимости от того, сколько SaveChanges
я использую в своем ApplicationDataInitializer
, поэтому я подумал, что было бы интересно добавить этот класс.
using System;
using System.Collections.Generic;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using ProjectKiwi.Models.Domain;
namespace ProjectKiwi.Data
{
public class ApplicationDataInitializer
{
private readonly ApplicationDbContext _dbContext;
private readonly UserManager<ApplicationUser> _userManager;
public ApplicationDataInitializer(ApplicationDbContext dbContext, UserManager<ApplicationUser> userManager)
{
_dbContext = dbContext;
_userManager = userManager;
}
public async Task InitializeData()
{
_dbContext.Database.EnsureDeleted();
if (_dbContext.Database.EnsureCreated())
{
await InitializeUsers();
_dbContext.SaveChanges();
#region Contactpagina
var contactpagina = new ContactPagina("info@bvbr.be", "+32478229952", new Locatie("Lombardstraat" ,"34", "Brussel", "1000", "België"));
contactpagina.VoegSocialeMediaToe(new SocialeMedia(SocialeMediaType.YouTube, "https://www.youtube.com/watch?v=OchTO8pQjR0&list=RDOchTO8pQjR0&start_radio=1"));
contactpagina.VoegSocialeMediaToe(new SocialeMedia(SocialeMediaType.Facebook, "https://www.facebook.com/messages/t/1980502862034183"));
contactpagina.VoegSocialeMediaToe(new SocialeMedia(SocialeMediaType.LinkedIn, "https://www.linkedin.com/in/ruben-szek%C3%A9r-978027160/"));
contactpagina.VoegSocialeMediaToe(new SocialeMedia(SocialeMediaType.Twitter, "https://twitter.com/mrnosleep07/status/1106022067059781632?s=21&fbclid=IwAR2420XE-a1luCKC_oUMBcaF2fbNvh0bfygCAYBQvOY0kdB6VNzfC_mpAGI"));
contactpagina.VoegSocialeMediaToe(new SocialeMedia(SocialeMediaType.Instagram, "https://www.instagram.com/"));
contactpagina.VoegSocialeMediaToe(new SocialeMedia(SocialeMediaType.Reddit, "https://www.reddit.com/r/W385/comments/bcid0h/beginner_clues_hotcold_locations_determined_with/"));
_dbContext.ContactPaginas.AddRange(new List<ContactPagina>(){ contactpagina });
#endregion
_dbContext.SaveChanges();
#region Nieuwsartikels
var artikel1 = new Nieuwsartikel("Probleem op het werk..",
"Inihilit atesequam, conecust voluptati rehenitatur am dit, ilibus mo et ex erferfero doluptium quae prestis quam, es- sed quis aut magnihictur?Bitaturiam, ipit aceptatur, odit, at re cor sim quam fugiandae audis vent quodiati volo omni dolorro cus nonsernate sunt enditatur? Duciendigent mo omnim fuga. Ita se molore");
var artikel2 = new Nieuwsartikel("Heel goed nieuws!",
"Inihilit atesequam, conecust voluptati rehenitatur am dit, ilibus mo et ex erferfero doluptium quae prestis quam, es- sed quis aut magnihictur?Bitaturiam, ipit aceptatur, odit, at re cor sim quam fugiandae audis vent quodiati volo omni dolorro cus nonsernate sunt enditatur? Duciendigent mo omnim fuga. Ita se molore");
var artikel3 = new Nieuwsartikel("Nog beter nieuws!",
"Inihilit atesequam, conecust voluptati rehenitatur am dit, ilibus mo et ex erferfero doluptium quae prestis quam, es- sed quis aut magnihictur?Bitaturiam, ipit aceptatur, odit, at re cor sim quam fugiandae audis vent quodiati volo omni dolorro cus nonsernate sunt enditatur? Duciendigent mo omnim fuga. Ita se molore");
_dbContext.Artikels.AddRange(new List<Nieuwsartikel> { artikel1, artikel2, artikel3 });
#endregion
_dbContext.SaveChanges();
#region Bestuursleden
var bestuurslid1 = new Bestuurslid("Benoît", "Kohl", BestuursPositie.Bestuurder,"BenoîtKohl.jpg", new SocialeMedia(SocialeMediaType.LinkedIn, "https://www.linkedin.com/in/benoit-kohl-72a53a6/"));
var bestuurslid2 = new Bestuurslid("Marc-Antoine", "Lemaigre", BestuursPositie.Bestuurder, "Marc-AntoineLemaigre.jpg", new SocialeMedia(SocialeMediaType.LinkedIn, "https://www.linkedin.com/in/marc-antoine-lemaigre-665444b3/"));
var bestuurslid3 = new Bestuurslid("Luc", "Imbrechts", BestuursPositie.Bestuurder, "LucImbrechts.jpg", new SocialeMedia(SocialeMediaType.LinkedIn, "https://www.linkedin.com/in/luc-imbrechts-24677525/?originalSubdomain=be"));
var bestuurslid4 = new Bestuurslid("Laurence", "Abeloos", BestuursPositie.Bestuurder, "LaurenceAbeloos.jpg", new SocialeMedia(SocialeMediaType.LinkedIn, "https://www.linkedin.com/in/laurence-abeloos-149260167/"));
var bestuurslid5 = new Bestuurslid("Denis-Bruno", "Floor", BestuursPositie.Bestuurder, "Denis-BrunoFloor.jpg", new SocialeMedia(SocialeMediaType.LinkedIn, "https://be.linkedin.com/in/denis-bruno-floor-09b45958"));
var bestuurslid6 = new Bestuurslid("Bart", "Gheysens", BestuursPositie.Bestuurder, "BartGheysens.jpg", new SocialeMedia(SocialeMediaType.LinkedIn, "https://www.linkedin.com/in/bart-gheysens-b459429a/"));
var bestuurslid7 = new Bestuurslid("Kris", "Lemmens", BestuursPositie.Bestuurder, "KrisLemmens.jpg", new SocialeMedia(SocialeMediaType.LinkedIn, "https://www.linkedin.com/in/kris-lemmens-7671716/"));
var bestuurslid8 = new Bestuurslid("Catherine", "Sarot", BestuursPositie.Bestuurder, "CatherineSarot.jpg", new SocialeMedia(SocialeMediaType.LinkedIn, "linkedin.com"));
var bestuurslid9 = new Bestuurslid("Renaud", "Simar", BestuursPositie.Bestuurder, "RenaudSimar.jpg", new SocialeMedia(SocialeMediaType.LinkedIn, "https://www.linkedin.com/company/renaud-simar-avocat/"));
var bestuurslid10 = new Bestuurslid("Elke", "Van Overwaele", BestuursPositie.Bestuurder, "ElkeVanOverwaele.jpg", new SocialeMedia(SocialeMediaType.LinkedIn, "https://www.linkedin.com/in/elke-van-overwaele-a4639946/"));
var bestuurslid11 = new Bestuurslid("Francis", "Walschot", BestuursPositie.Bestuurder, "FrancisWalschot.jpg", new SocialeMedia(SocialeMediaType.LinkedIn, "https://www.linkedin.com/in/francis-walschot-98b724115/"));
_dbContext.Bestuurleden.AddRange(new List < Bestuurslid > { bestuurslid1, bestuurslid2, bestuurslid3, bestuurslid4, bestuurslid5, bestuurslid6, bestuurslid7, bestuurslid8, bestuurslid9, bestuurslid10, bestuurslid11 });
#endregion
_dbContext.SaveChanges();
#region Forumposts
string BESCHRIJVING = "Inihilit atesequam, conecust voluptati rehenitatur am dit, ilibus mo et ex erferfero doluptium quae prestis quam, es - sed quis aut magnihictur? Bitaturiam, ipit aceptatur, odit, at re cor sim quam fugiandae audis vent quodiati volo omni dolorro cus nonsernate sunt enditatur? Duciendigent mo omnim fuga.";
Categorie belangrijkCategorie = new Categorie("Heel Belangrijk");
Categorie seminarieVragenCategorie = new Categorie("Vragen seminarie");
var forumpost1 = new Forumpost("Hoe word je lid?", BESCHRIJVING, new Deelnemer("Yannick","Olivier", "Yannick.olivier@hotmail.com", new Organisatie("ProjectKiwi", ""), "Werknemer", "yannick.jpg", true), belangrijkCategorie);
var forumpost2 = new Forumpost("We bestaan sinds..", BESCHRIJVING, new Deelnemer("Jan","Vanleemhuizen", "Ruben.leem@gmail.com", new Organisatie("HoGent", ""), "Werknemer", "jan.jpg", true), belangrijkCategorie);
var forumpost3 = new Forumpost("Let op de volgende seminaries..", BESCHRIJVING, new Deelnemer("Jan","Van der Steen", "Robbie2@hotmail.com", new Organisatie("Hogent", ""), "Werknemer", "jan.jpg", false), belangrijkCategorie);
var forumpost4 = new Forumpost("Vragen omtrent presentatie Mr. Leemhuizen", BESCHRIJVING, new Deelnemer("Jan","Jansens", "JanJansens@hotmail.com", new Organisatie("BVBR-ADBC", ""), "Werknemer", "jan.jpg", false), seminarieVragenCategorie);
forumpost1.VoegCommentToe(new Deelnemer("Yannick", "Olivier", "yann@gmail.com", new Organisatie("ToulousCo", ""), "werknemer", "yannick.jpg", false),
"Maar wat met dat één probleem, dat raakt nooit opgelost.");
forumpost1.VoegCommentToe(new Deelnemer("Ruben", "Szeker", "rubo@gmail.com", new Organisatie("ToulousCo", ""), "werknemer", "jan.jpg", false),
"Ja dat vind ik ook wel.");
belangrijkCategorie.VoegForumpostToe(forumpost1);
belangrijkCategorie.VoegForumpostToe(forumpost2);
seminarieVragenCategorie.VoegForumpostToe(forumpost3);
seminarieVragenCategorie.VoegForumpostToe(forumpost4);
_dbContext.Categories.AddRange(belangrijkCategorie, seminarieVragenCategorie);
#endregion
_dbContext.SaveChanges();
#region Seminaries
// Eerst sprekers, locaties en datum
DateTime datumDoorgaat = new DateTime(2019, 5, 12);
Locatie locatie1 = new Locatie("Moorselbaan", "123", "Aalst", "9300", "België");
Locatie locatie2 = new Locatie("Erembodegemse straat", "54", "Gent", "7000", "België");
var spreker1 = new Spreker("Richard", "Van de Welle", "RichardVanDeWelle@outlook.com", null, "Ewa tekst enzo");
var spreker2 = new Spreker("Roberto", "Drogenbroecke", "Roberto21@outlook.com", null, "Nog wat andere woorden");
var spreker3 = new Spreker("Ruben", "Szeker", "ruben@outlook.com", null, "Misschien een titel van Hofstade");
spreker1.VoegTaalToe(Taal.Nederlands);
spreker1.VoegTaalToe(Taal.Français);
spreker1.VoegSocialeMediaToe(new SocialeMedia(SocialeMediaType.Facebook,"facebook.be"));
spreker2.VoegTaalToe(Taal.Nederlands);
spreker3.VoegTaalToe(Taal.Français);
// Dan de seminaries
var seminarie1 = new Seminarie(datumDoorgaat.Date.AddDays(5), 30.00, 40.00, "", 50, "Investeren",
"Hoe doe je een investering. Begin met een sterke aanpak. Dit is nog wat placeholder tekst via een lange zin. ",
locatie1, new TimeSpan(18, 0, 0), new TimeSpan(20, 0, 0));
seminarie1.VoegSprekerToe(spreker1);
seminarie1.VoegSprekerToe(spreker2);
seminarie1.Talen.Add(Taal.Nederlands);
var seminarie2 = new Seminarie(datumDoorgaat.Date.AddMonths(2), 30.00, 40.00, "", 50, "Aandelen kopen",
BESCHRIJVING.Substring(0, 70), locatie2, new TimeSpan(15, 0, 0), new TimeSpan(18, 30, 0));
seminarie2.VoegSprekerToe(spreker3);
var seminarie3 = new Seminarie(datumDoorgaat.Date.AddDays(9), 30.00, 40.00, "", 50, "Investeren",
BESCHRIJVING.Substring(0,50), locatie1, new TimeSpan(9, 30, 0), new TimeSpan(12, 30, 0));
seminarie3.VoegSprekerToe(spreker2);
var seminaries = new List<Seminarie> { seminarie1, seminarie2, seminarie3};
_dbContext.Seminaries.AddRange(seminaries);
#endregion
_dbContext.SaveChanges();
#region Deelnemers
var deelnemer1 = new Deelnemer("Souhaib", "Akrouchi", "souhaib.akrouchi@outlook.com", new Organisatie("Hogent", ""), "werknemer", "", true);
var deelnemer2 = new Deelnemer("Yannick", "Olivier", "yannick@outlook.com", new Organisatie("Hogent", ""), "werknemer", "", true);
var deelnemer3 = new Deelnemer("Ruben", "Szeker", "ruben@outlook.com", new Organisatie("Hogent", ""), "werknemer", "", true);
var persoon1 = new Deelnemer("Yannick", "Olivier",
"yannick.olivier@outlook.com", new Organisatie("Hogent", ""),
"Student", "yannick.jpg", true);
var persoon2 = new Deelnemer("Jan", "Depratere",
"jan.depratere@outlook.com", new Organisatie("LawForce", ""),
"Advocaat", "jan.jpg", true);
var deelnemers = new List<Deelnemer> { deelnemer1, deelnemer2, deelnemer3,
persoon1, persoon2 };
_dbContext.Deelnemers.AddRange(deelnemers);
#endregion
_dbContext.SaveChanges();
}
}
private async Task InitializeUsers()
{
ApplicationUser user = new ApplicationUser {
UserName = "yannick.olivier@outlook.com",
Email = "yannick.olivier@outlook.com" };
await _userManager.CreateAsync(user, "P@ssword11");
await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, "klant"));
var eMailAddress = "jan.depratere@outlook.com";
user = new ApplicationUser { UserName = eMailAddress, Email = eMailAddress };
await _userManager.CreateAsync(user, "P@ssword11");
await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, "administrator"));
}
}
}
Есть теории?
EDIT:
ОТВЕТ: Мне как-то удалось это исправить, перепрограммировав и очистив код в моих репозиториях, средствах отображения, applicationdatainitializer и т. Д., Но я все еще не уверен, что вызвало это.