Отображение «один ко многим», беглый NHibernate - PullRequest
1 голос
/ 01 марта 2011

Я пытаюсь заставить работать отношение один ко многим. У меня есть следующие сопоставления:

    public class User
{

    public User()
    {
        UserCourses = new List<UserCourse>();
    }

    public virtual int Id { get; private set; }

    public virtual IList<UserCourse> UserCourses { get; private set;}


}
    public sealed class UserMap : ClassMap<User>
{
    public UserMap()
    {
        Id(x => x.Id, "Id");

        HasMany(x => x.UserCourses).Inverse().Cascade.All().Table("UserCourse");

        Table("[USER]");
    }
}
    public sealed class UserCourseMap : ClassMap<UserCourse>
{
    public UserCourseMap()
    {
        Id(x => x.Id, "Id");

        References(x => x.User, "UserID");

        Map(x => x.Role, "Role");
    }
}

Я получаю следующее исключение, если я пытаюсь создать экземпляр объекта User, а затем пытается просмотреть курсы:

                var user = (from u in userRepository.Linq() // Fetch a user
                        where u.Username == username
                        select u).Single();

            var courses = user.UserCourses.Single(); // wont work

{"Неверное имя столбца 'User_id'. \ R \ nНеверное имя столбца 'User_id'."}} не удалось инициализировать коллекцию: [Fringedivision.Rapp.Domain.User.UserCourses # 1] [SQL: ВЫБРАТЬ usercourse0_.User_id в качестве User4_1_, usercourse0_.Id в качестве Id1_, usercourse0_.Id в качестве Id1_0_, usercourse0_our_ user_0_0_0_1_1_1 Role_service Role как Role as UserID1_0_ FROM [UserCourse] usercourse0_ ГДЕ usercourse0_.User_id =?]

Кажется, я не понимаю, в чем проблема, есть предложения? Кажется, что ссылки работают, если я создаю экземпляр объекта UserCourse.

1 Ответ

2 голосов
/ 01 марта 2011

добавить столбец к множеству

HasMany(x => x.UserCourses).KeyColumn("UserId") или какому-либо фактическому синтаксису в версии fnh, на которой вы находитесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...