Closed willianas1 closed 5 years ago
Adiciona esse código no seu contexto
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Ignore<Notification>();
}
Closing
Nas versões >= 2.0 do Flunt, sempre que uma entidade herda de Notifiable<Notification>
, ao criar um migration, é inserido um campo adicional TempId em todas as tabelas:
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "APIUsuario",
columns: table => new
{
IdUsuario = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Nome = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: false),
TempId = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_APIUsuario", x => x.IdUsuario);
table.UniqueConstraint("AK_APIUsuario_TempId", x => x.TempId);
});
}
Já tentei removê-lo, mas sem sucesso. Sugestões?
Nas versões >= 2.0 do Flunt, sempre que uma entidade herda de
Notifiable<Notification>
, ao criar um migration, é inserido um campo adicional TempId em todas as tabelas:protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "APIUsuario", columns: table => new { IdUsuario = table.Column<int>(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Nome = table.Column<string>(type: "varchar(100)", maxLength: 100, nullable: false), TempId = table.Column<int>(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_APIUsuario", x => x.IdUsuario); table.UniqueConstraint("AK_APIUsuario_TempId", x => x.TempId); }); }
Já tentei removê-lo, mas sem sucesso. Sugestões?
Passei por esse problema com versão 2.0.5 do Flunt e consegui resolver fazendo o seguinte na minha classe ApplicationDbContext:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Ignore<Notifiable<Notification>>();
modelBuilder.Ignore<Notification>();
modelBuilder.Owned<Cpf>();
modelBuilder.Owned<Name>();
modelBuilder.Owned<Email>();
modelBuilder.Owned<Phone>();
modelBuilder.ApplyConfigurationsFromAssembly(typeof(ApplicationDbContext).Assembly);
}
E depois em um arquivo de configuração da classe que possui as propriedades valueobjects fiz isso:
public class SellerConfiguration : IEntityTypeConfiguration<Seller>
{
public void Configure(EntityTypeBuilder<Seller> builder)
{
builder.OwnsOne(x => x.Cpf)
.Property(x => x.Number)
.IsRequired();
builder.OwnsOne(x => x.Cpf)
.Ignore(x => x.Notifications);
builder.OwnsOne(x => x.Name)
.Property(x => x.FirstName)
.IsRequired();
builder.OwnsOne(x => x.Name)
.Property(x => x.LastName)
.IsRequired();
builder.OwnsOne(x => x.Name)
.Ignore(x => x.Notifications);
builder.OwnsOne(x => x.Email)
.Property(x => x.Address)
.IsRequired();
builder.OwnsOne(x => x.Email)
.Ignore(x => x.Notifications);
builder.OwnsOne(x => x.Phone)
.Property(x => x.Number)
.IsRequired();
builder.OwnsOne(x => x.Phone)
.Ignore(x => x.Notifications);
}
}
Ao tentar usar o Flunt com o EF Core sempre apresenta essas mensagem ao fazer um add-migration.
Já defini a Key da entidade no DBContext, porem quando coloco a entidade para herdar de Notifiable, o EF reclama da primary key.
Alguém poderia ajudar? :)