c# - existing - Excluya un campo/propiedad de la base de datos con Entity Framework 4 y Code-First
entity framework code first winforms (4)
En la versión actual, la única forma de excluir una propiedad es mapear explícitamente todas las demás columnas:
builder.Entity<Employee>().MapSingleType(e => new {
e.Id,
e.Name,
e.FatherName,
e.IsMale,
e.IsMarried
});
Dado que no se hace referencia a AddressAs, no forma parte de la Entidad / Base de datos.
El equipo de EF está considerando agregar algo como esto:
builder.Entity<Employee>().Exclude(e => e.AddressAs);
Le sugiero que deje un comentario en el blog de EFDesign, solicitando esta función :)
Espero que esto ayude
Alex
Me gustaría saber si hay alguna forma de excluir algunos campos de la base de datos. 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?
Para referencia futura: puede usar anotaciones de datos MSDN EF - Anotaciones de datos de Code First
[NotMapped]
public string AddressAs { get; set; }
Sé que esta es una pregunta antigua, pero en caso de que alguien (como yo) llegue a ella desde la búsqueda ...
Ahora es posible en el marco de la entidad 4.3 para hacer esto. Lo harías así:
builder.Entity<Employee>().Ignore(e => e.AddressAs);
También es posible agregar la columna que desea ignorar como una Propiedad de sombra en el DbContext:
builder.Entity<Employee>().Property<string>("AddressAs");
Entonces puedes consultar en esa columna así:
context.Employees.Where(e => EF.Property<string>(e, "AddressAs") == someValue);