Я создаю своего рода блог со структурой C# /. Net 4.5 с использованием миграций EF-кода-первого. Название, некоторый контент, дата, которую он был создан, и жанр и тип истории. < /p>
public class Story
{
public int Id { get; set; }
public string AuthorId { get; set; }
public virtual ApplicationUser Author { get; set; }
[Required]
[StringLength(50)]
public string Title { get; set; }
[Required]
[MinLength(100), MaxLength(5000)]
public string Content { get; set; }
[Required]
public int GenreId { get; set; }
public Genre Genre { get; set; }
[Required]
public int StoryTypeId { get; set; }
public StoryType StoryType { get; set; }
public DateTime CreatedAt { get; set; }
}
< /code>
Я добавил Storytypes в качестве свойства в историю. Ссылки Storytype на модель Storytype: < /p>
public class StoryType
{
public int Id { get; set; }
public string Name { get; set; }
}
< /code>
Я позаботился о том, чтобы добавить свой DBSET в мое приложение DB Context: < /p>
public DbSet Genres { get; set; }
public DbSet Stories { get; set; }
public DbSet StoryTypes { get; set; }
< /code>
Я в значительной степени выполнял те же шаги, которые я использовал, чтобы создать отношения между историей и жанром (что работало нормально). Прежде чем я начну создавать контроллеры Storytype, я зашел в Package-Console и запустил: < /p>
add-migration
< /code>
, который вернулся: < /p>
public partial class CreateTypeTable : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.StoryTypes",
c => new
{
Id = c.Int(nullable: false, identity: true),
Name = c.String(),
})
.PrimaryKey(t => t.Id);
AddColumn("dbo.Stories", "StoryTypeId", c => c.Int(nullable: false));
CreateIndex("dbo.Stories", "StoryTypeId");
AddForeignKey("dbo.Stories", "StoryTypeId", "dbo.StoryTypes", "Id", cascadeDelete: true);
}
public override void Down()
{
DropForeignKey("dbo.Stories", "StoryTypeId", "dbo.StoryTypes");
DropIndex("dbo.Stories", new[] { "StoryTypeId" });
DropColumn("dbo.Stories", "StoryTypeId");
DropTable("dbo.StoryTypes");
}
}
< /code>
Смотрите на него, я не видел проблемы, а затем запустил: < /p>
update-database
< /code>
in package-console. < /p>
, который вернулся: < /p>
Error Number:547,State:0,Class:16
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_dbo.Stories_dbo.StoryTypes_StoryTypeId". The conflict occurred in database "aspnet-HiRatik.Stories-20180724043630", table "dbo.StoryTypes", column 'Id'.
< /code>
Я не уверен, что здесь пошло не так. Я сделал тот же процесс с жанровыми отношениями, и это сработало. Я не видел разницы в двух.
Подробнее здесь: https://stackoverflow.com/questions/515 ... eign-key-c
Миграция структуры сущности - Заявление об изменении таблицы в конфликте с ограничением внешнего ключа ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Заявление Python "Match" подчеркнуто Red в Pycharm 2020.3.5, но заявление "Match" работает
Anonymous » » в форуме Python - 0 Ответы
- 38 Просмотры
-
Последнее сообщение Anonymous
-