У меня возникают проблемы с запуском первой миграции кода с использованием структуры сущностей при заполнении информации. Я не могу понять, что я делаю неправильно. Вот ошибка, которую выдает мне консоль диспетчера пакетов, когда я запускаю update-database.
Running Seed method.
System.Data.Entity.Infrastructure.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.UpdateException: An error occurred while updating the entries. See the inner exception for details. --->
System.Data.SqlClient.SqlException: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_dbo.Blogs_dbo.Statuses_StatusId". The conflict occurred in database "GregGoodwin", table "dbo.Statuses", column 'Id'.
The statement has been terminated.
Существует более крупная трассировка стека, которая не говорит мне намного больше. Во всяком случае, вот мой начальный код Configuration.cs.
var cat = new Category { CategoryTitle = "General", PostDate = DateTime.Now, Slug = "general" };
context.Categories.AddOrUpdate(cat);
var statusPub = new Status { StatusTitle = "Published", Slug = "published", PostDate = DateTime.Now };
context.Statuses.AddOrUpdate(statusPub);
var statusDraft = new Status { StatusTitle = "Draft", Slug = "draft", PostDate = DateTime.Now };
context.Statuses.AddOrUpdate(statusDraft);
var blogPost = new Blog
{
CategoryId = 1,
AllowComments = true,
PostDate = DateTime.Now,
PostDescription = "Default post added to database",
PostTitle = "Hello World",
Slug = "hello-world",
PostContent = "<p>Hello to the world</p>",
StatusId = 1,
Tags = "hello,world",
ShortLink = "http://bit.ly/16Qt4wp"
};
context.Blogs.AddOrUpdate(blogPost);
Теперь вот мои модели
Положение дел
[Table("Statuses")]
public class Status
{
[Key, DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
public string StatusTitle { get; set; }
public string Slug { get; set; }
[DataType(DataType.Date), Timestamp]
public DateTime PostDate { get; set; }
}
Категория
[Table("Categories")]
public class Category
{
[Key, DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
public string CategoryTitle { get; set; }
public string Slug { get; set; }
[DataType(DataType.Date), Timestamp]
public DateTime PostDate { get; set; }
}
Блог
[Table("Blogs")]
public class Blog
{
[Key, DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
public string PostTitle { get; set; }
[Required]
public string PostDescription { get; set; }
[Required]
public string PostContent { get; set; }
public string Slug { get; set; }
public string Tags { get; set; }
public bool AllowComments { get; set; }
public string ShortLink { get; set; }
[DataType(DataType.Date), Timestamp]
public DateTime PostDate { get; set; }
public int StatusId { get; set; }
public int CategoryId { get; set; }
public virtual Category Category { get; set; }
public virtual Status Status { get; set; }
}
Что я делаю неправильно? Заранее благодарю за любую помощь.
Изменить: просмотрев базу данных, я заметил, что категория добавляется, но статусы и запись в блоге отсутствуют, когда я запускаю семя.