Я пытаюсь заставить работать отношение один ко многим. У меня есть следующие сопоставления:
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.