[Homework] Database Apps - EF Code First
Колеги, ето го домашното по Code First. Има малък проблем с първата задача по конзолния клиент. Не иска да вземе домашните на студентите и съответно не ги отпечатва. Не можах да си намеря сам грешката и се надявам на помощ от ваша страна!
Условието отново има малък пропуск и ако се спазва стриктно таблицата Materials остава висяща в базата. Затова добавих малко условие в Additional requirements: • Materials can belong to one or more courses
Направих валидация на някои дати, за да не може да се подават дати в бъдещето. Това стана чрез имплементиране на собствен атрибут.
Иначе има няколко неща, с които се преборих.
1. Connection стринговете към базата - трябваше да ги добавям ръчно към App.config файловете на всичките проекти. Затова ви обръщам внимание, когато проверявате чужди домашни, не бързайте да пишете, че домашното не работи, а проверете дали случайно нямате такава инстанция на SQL Server при вас и затова не иска да тръгне.
2. Много време ми отне да накарам Seed методът да се извиква въобще. Просто се наложи да създам клас наследник на DropCreateDatabaseIfModelChanges класа, в който да овъррайдна Seed метода
3. Доста време ми отне да мине първоначалния seed, защото имаше проблеми с подредбата на данните, констрейнтите по foreign keys и т.н.
4. При анотациите за валидиране се оказа, че подаването само не errorMessage не е достатъчно, защото като гръмне EF въобще не го изписва никъде. Затова си подавайте и ErrorMessageResourceName. На мен това ми изяде 3 часа, докато разбера коя валидация ми пищи.
Моля, не копирайте домашното дословно в системата и не го качвайте като собствено!
Благодаря! Аз съм пробвал да извикам SetInitializer в конструктора на StudentSystemDbContext и вероятно затова не е сработило. Затова порових в гугъл и намерих вариант с допълнителен клас, който работи. Като цяло цял ден странни неща ми се случваха с този Code First ;)