Código da estrutura da entidade primeiro: como mapear campos privados?
possível mapear uma coluna da tabela para um campo de classe em vez de uma propriedade de classe e com
VOCÊ CONSEGUE :
Siga este link:http: //weblogs.asp.net/ricardoperes/archive/2013/08/22/mapping-non-public-members-with-entity-framework-code-first.asp
Este é um pedido comum e realmente faz sentido; precisamos usar expressões LINQ e um pouco de mágica de reflexão. Primeiro, uma função auxiliar para retornar uma expressão que aponta para um membro:
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);
}
}
Em seguida, chamamos isso no método DbContext.OnModelCreating, como um parâmetro para StructuralTypeConfiguration.Property
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Project>().Property(ExpressionHelper.GetMember<Project, Decimal>("Budget")).IsRequired();
base.OnModelCreating(modelBuilder);
}