Это путь. Я просто немного разочарован тем, что функция, поддерживаемая в EF4, не поддерживается в Code-First.

ю, что вопрос уже имеет решение (например,этот вопрос) но я действительно не могу позволить себе присоединить логику сопоставления в той же сборке, где находится домен (классы 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: настроенное свойство 'InnerInstituteTexts' не является объявленным свойством для объекта 'Institute'. Убедитесь, что он не был явно исключен из модели и является допустимым примитивным свойством.

Ответы на вопрос(1)

Ваш ответ на вопрос