Entity Framework 4 - отображение непубличных свойств с помощью CTP5 (сначала код) в контексте persistence unaware

Я знаю, что вопрос уже имеет решение (например, этот вопрос), но я действительно не могу позволить себе прикрепить логику отображения в той же сборке, где находится домен (классы POCO).

Есть ли другой способ?

Я нашел этот хороший пост в блоге, но я не смог заставить его работать. Вот модель:

public class Institute
{
    /**
        Code omitted
    **/

    protected virtual ICollection<InstituteText> InnerInstituteTexts { get; set; }

    private InstituteTextSet _TextSets;

    public InstituteTextSet Texts 
    {
        get 
        {
            if (_TextSets == null)
                _TextSets = new InstituteTextSet(InnerInstituteTexts);

            return _TextSets;
        }
    }
}

Код отображения:

var instituteTextExpression = ObjectAccessor<Institute>.CreateExpression<ICollection<InstituteText>>("InnerInstituteTexts");

institute.HasMany(instituteTextExpression)
    .WithRequired()
    .HasForeignKey(t => t.InstituteId);

где CreateExpression определяется как:

public static Expression<Func<T, TResult>> CreateExpression<TResult>(string propertyOrFieldName)
{
    ParameterExpression param = Expression.Parameter(typeof(T), "propertyOrFieldContainer");
    Expression body = Expression.PropertyOrField(param, propertyOrFieldName);
    LambdaExpression lambda = Expression.Lambda(typeof(Func<T, TResult>), body, param);

    return (Expression<Func<T, TResult>>) lambda;
}

ошибка, которую я получаю:

Метод инициализации Studentum.Core.Tests.InstituteTests.Initialize выбросила исключение. System.TypeInitializationException: System.TypeInitializationException: Инициализатор типа для 'Studentum.Core.FluentCoreRepositoryFactory' выбросил исключение. ---> System.InvalidOperationException: The настроенное свойство 'InnerInstituteTexts' не является объявленным свойством сущности 'Institute'. Убедитесь, что оно не было не было явно исключено из модели и что оно является действительным примитивным свойство...

12
задан Community 23 May 2017 в 12:25
поделиться