Pergunta

Eu gostaria de saber que há uma maneira para excluir alguns campos do banco de dados? Por exemplo:

public class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string FatherName { get; set; }

    public bool IsMale { get; set; }
    public bool IsMarried { get; set; }

    public string AddressAs { get; set; }
}

Como posso excluir o domínio AddressAs do banco de dados?

Foi útil?

Solução

Na versão atual a única maneira de excluir uma propriedade é mapear explicitamente todas as outras colunas:

builder.Entity<Employee>().MapSingleType(e => new {
  e.Id,
  e.Name,
  e.FatherName,
  e.IsMale,
  e.IsMarried
});

Porque AddressAs não é referenciado que não faz parte da Entidade / banco de dados.

A equipe EF é considerando adicionando algo como isto:

builder.Entity<Employee>().Exclude(e => e.AddressAs);

Eu sugiro que você diga a deixar um comentário no blog EFDesign, solicitando esse recurso:)

Espero que isso ajude

Alex

Outras dicas

para referência futura: você pode usar anotações de dados MSDN EF - código primeiro Anotações de dados

[NotMapped]        
public string AddressAs { get; set; }

Eu sei que isto é uma questão de idade, mas no caso de alguém (como eu) vem a ele de pesquisa ...

Agora é possível na estrutura de entidade 4.3 para fazer isso. Você poderia fazê-lo assim:

builder.Entity<Employee>().Ignore(e => e.AddressAs);

Também é possível adicionar a coluna que você deseja ignorar como Sombra propriedade na DbContext:

builder.Entity<Employee>().Property<string>("AddressAs");

Em seguida, você pode consultar nessa coluna assim:

context.Employees.Where(e => EF.Property<string>(e, "AddressAs") == someValue);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top