【发布时间】:2011-03-02 00:45:03
【问题描述】:
我正在尝试使一对多关系正常工作。我有以下映射:
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");
}
}
如果我尝试创建用户对象的实例然后尝试查看课程,则会收到以下异常:
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: SELECT usercourse0_.User_id as User4_1_, usercourse0_.Id as Id1_, usercourse0_.Id as Id1_0_, usercourse0_.Role as Role1_0_, usercourse0_.UserID作为 UserID1_0_ FROM [UserCourse] usercourse0_ WHERE usercourse0_.User_id=?]
我似乎无法理解问题所在,有什么建议吗?如果我创建 UserCourse 对象的实例,参考映射似乎可以工作。
【问题讨论】:
标签: c# .net sql-server nhibernate fluent-nhibernate