Entity Framework Code First: ¿Cómo mapear campos privados?

Es posible asignar una columna de tabla a un campo de clase en lugar de a una propiedad de clase y cómo?

PUEDES HACERLO :

Siga este enlace:http: //weblogs.asp.net/ricardoperes/archive/2013/08/22/mapping-non-public-members-with-entity-framework-code-first.asp

Esta es una solicitud común, y realmente tiene sentido; Necesitamos usar expresiones LINQ y un poco de magia de reflexión. Primero, una función auxiliar para devolver una expresión que apunta a un miembro:

      public static class ExpressionHelper
      {
          public static Expression<Func<TEntity, TResult>> GetMember<TEntity, TResult>(String memberName)
          {
              ParameterExpression parameter = Expression.Parameter(typeof(TEntity), "p");
              MemberExpression member = Expression.MakeMemberAccess(parameter, typeof(TEntity).GetMember(memberName, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance).Single());
              Expression<Func<TEntity, TResult>> expression = Expression.Lambda<Func<TEntity, TResult>>(member, parameter);
              return (expression);
          }
     }

Entonces, lo llamamos en el método DbContext.OnModelCreating, como un parámetro para StructuralTypeConfiguration.Property

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
  {
      modelBuilder.Entity<Project>().Property(ExpressionHelper.GetMember<Project, Decimal>("Budget")).IsRequired();

      base.OnModelCreating(modelBuilder);
  }

Respuestas a la pregunta(1)

Su respuesta a la pregunta