Если я просто изменю имя, будет создана миграция, в результате которой старая таблица будет удалена и создана таблица с новым именем. . Это означает, что я теряю все свои данные, что определенно не работает.
Поэтому я прочитал в Интернете статью, в которой говорилось, что нужно переименовать таблицу следующим образом.
Код: Выделить всё
public DbSet
BolDocumentFields { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity().ToTable("PdfTemplateFields");
// Additional code
}
Код: Выделить всё
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "BolDocumentFields");
migrationBuilder.CreateTable(
name: "PdfTemplateFields",
columns: table => new
{
Id = table.Column(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
BolDocumentId = table.Column(type: "int", nullable: false),
FieldType = table.Column(type: "int", nullable: false),
SortOrder = table.Column(type: "int", nullable: false),
OnArrival = table.Column(type: "bit", nullable: false),
Required = table.Column(type: "bit", nullable: false),
ReadOnly = table.Column(type: "bit", nullable: false),
Name = table.Column(type: "nvarchar(80)", maxLength: 80, nullable: false),
DefaultValue = table.Column(type: "nvarchar(350)", maxLength: 350, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_PdfTemplateFields", x => x.Id);
table.ForeignKey(
name: "FK_PdfTemplateFields_BolDocuments_BolDocumentId",
column: x => x.BolDocumentId,
principalTable: "BolDocuments",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_PdfTemplateFields_BolDocumentId",
table: "PdfTemplateFields",
column: "BolDocumentId");
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ework-core