Pregunta

Me gustaría saber que hay una manera de excluir algunos campos de la base de datos? Para, por ejemplo:

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; }
}

¿Cómo puedo excluir el campo AddressAs de la base de datos?

¿Fue útil?

Solución

En la versión actual la única manera de excluir una propiedad es para asignar explícitamente todas las otras columnas:

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

Debido AddressAs no se hace referencia no es parte de la Entidad / Base de datos.

El equipo de EF es considerando añadir algo como esto:

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

Le sugiero que diga dejar un comentario en el blog EFDesign, solicitando esta característica:)

Espero que esto ayude

Alex

Otros consejos

para referencia futura: se pueden utilizar las anotaciones de datos MSDN EF - Código primeras anotaciones de datos

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

Sé que esto es una cuestión de edad, pero en caso de que alguien (como yo) le viene de la búsqueda ...

Ahora es posible en el marco de la entidad 4.3 para hacer esto. Que lo haría así:

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

También es posible añadir la columna que desea ignorar como un Sombra propiedad en el DbContext:

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

A continuación, se puede consultar en el que la columna de esta manera:

context.Employees.Where(e => EF.Property<string>(e, "AddressAs") == someValue);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top