Невозможно сохранить сложные типы данных в PostgresC#

Место общения программистов C#
Ответить
Anonymous
 Невозможно сохранить сложные типы данных в Postgres

Сообщение Anonymous »

При новой миграции мне нужна пустая миграция. Я не хочу, чтобы история паролей повторялась

Код: Выделить всё

public class User : IdentityUser
{
/// 
/// The history of the changed password
/// 
public List PasswordHistory { get; set; } = [];
}

Поле истории паролей имеет значение по умолчанию в виде массива. Конфигурацию удостоверения я предоставляю ниже

Код: Выделить всё

public void Configure(EntityTypeBuilder builder)
{
var adminUser = new User
{
Id = AdminUserId,
UserName = "admin@xxx.com",
EmailConfirmed = true,
SecurityStamp = "",
ConcurrencyStamp = "",
LockoutEnabled = true,
FirstName = "Admin",
LastName = "",
IdpUser = false,
Enabled = true,
};

Это код миграции

Код: Выделить всё

using System.Collections.Generic;
using Microsoft.EntityFrameworkCore.Migrations;

namespace Db.Postgres.Migrations
{
/// 
public partial class AddPasswordHistoryToUser : Migration
{
/// 
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn(
name: "PasswordHistory",
table: "AspNetUsers",
type: "text[]",
nullable: false);

migrationBuilder.UpdateData(
table: "AspNetUsers",
keyColumn: "Id",
keyValue: "C52E290D-4971-4284-923D-D9E8EE2F04CC",
column: "PasswordHistory",
value: new List());
}

/// 
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "PasswordHistory",
table: "AspNetUsers");
}
}
}
это была настоящая миграция, но я изменился, как указано ниже

Код: Выделить всё

public partial class AddPasswordHistoryToUser : Migration
{
/// 
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn(
name: "PasswordHistory",
table: "AspNetUsers",
type: "text[]",
nullable: false,
defaultValue: new List());
}
Но теперь поле истории паролей повторяется для каждой миграции

Код: Выделить всё

migrationBuilder.UpdateData(
table: "AspNetUsers",
keyColumn: "Id",
keyValue: "C52E290D-4971-4284-923D-D9E8EE2F04CC",
column: "PasswordHistory",
value: new List());
БД не может распознать это изменение, как решить эту проблему. Я не хочу повторять это поле при каждой миграции.

Подробнее здесь: https://stackoverflow.com/questions/792 ... n-postgres
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»