Подскажите в чем может быть проблема, вылетает ошибка при миграции на добавление связи между таблицами
Конфликт инструкции ALTER TABLE с ограничением FOREIGN KEY "FK_dbo.Books_dbo.Authors_AuthorId". Конфликт произошел в базе данных "test2_bd", таблица "dbo.Authors", column 'Id'.
Вот два класа
public class Book
{
public int Id { get; set; }
public string NameBook { get; set; }
public int Pages { get; set; }
public int Year { get; set; }
public int Price { get; set; }
public int AuthorId { get; set; }
public Author Author { get; set; }
}
public class Author
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
изначально создал таблицы без связей, сейчас при добавлении связи
public int AuthorId { get; set; }
public Author Author { get; set; }
вылетает ошибка. Не могу разобраться в чем причина, я так понимаю ему не нравится поле Id, но делал аналогично с другими таблицами все было ок.
Я так понимаю добавляя жесткую привязку книги к автору, при миграции уже созданные строки выдают ошибку, что FK не определен. Для связей таблиц используйте Nullable<int>
или int?
. И для удобства используйте ключевое слово virtual
для связанного класса, он будет подтягивать его автоматически из БД.
Пример:
public class Book
{
public int Id { get; set; }
public string NameBook { get; set; }
public int Pages { get; set; }
public int Year { get; set; }
public int Price { get; set; }
public int? AuthorId { get; set; }
public virtual Author Author { get; set; }
}
public class Author
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual ICollection<Book> Books { get; set; }
public Author()
{
Books = new List<Book>();
}
}
Ну и что почитать: Code First Один ко многим
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть проверка такого рода GetName если находит подходящую строчку в тексте path то возвращает определённый текст
В общем, отлаживал библиотекурешил поставить музыку которая идет в потоке на паузу, и отойти на минут 10
Как средствами С# на Linux запустить консоль и выполнить в ней определённую команду (в моём случае это запуск/остановка/проверка статуса службы...