Closed vitormoschetta closed 3 years ago
@vitormoschetta seu problema não é flunt e sim sua entidade, que o ef está dizendo que sua classe não tem uma chave primária. Posta o código concreto da sua classe e o como você mapeou para o EF.
modelBuilder.Entity
Notification não deve ser mapeado, a solução que encontrei foi:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Ignore<Notification>();
base.OnModelCreating(modelBuilder);
}
Como existe uma composição entre Notifiable e Notification, quando minha entidade herda Notifiable o EF Core Tenta Mapear Notification e gerar a tabela.
Precisei implementar com Dapper também, em um projeto Win Forms. Não consegui Ignorar as propriedades do Flunt no Dapper.Contrib.Extensions;
Solução: Decorar as propriedades 'Notifications', 'Invalid', e 'Valid' da classe Notifiable com a anotação [Computed]
Ex:
using Dapper.Contrib.Extensions;
public abstract class Notifiable
{
[Computed]
public IReadOnlyCollection<Notification> Notifications => _notifications;
[Computed]
public bool Invalid => _notifications.Any();
[Computed]
public bool Valid => !Invalid;
}
@vitormoschetta I cant do that! Can
t add reference to System.ComponentModels.DataAnnotations to Flunt.
The notifications are not for ORM/Database related only... I use it a lot on my Console Apps for example.
We can discuss a way to solve this without evolving annotations. Did you have more details on what happened to provide us? We can work on this together!
Since we're making contract generic, you can move your notifications outside your entity. Also you can extend and create custom notifications or even remove mapping from Notifications property.
It's more an ORM related issue... closing this.
Boa noite.
Sou um pouco inexperiente.
Ao tentar mapear, no DbContext (EF Core), uma classe que Herda/Implementa Notifiable, recebo a seguinte notificação:
Nas configurações do DbSet então adiciono:
E então recebo outra notificação:
Como você faz para resolver essa questão ao usar o EF Core?