我正在努力使用 NHibernate 来实现简单的连接。
这是我所拥有的:
Post.cs:
public class Post
{
public virtual int id { get; set; }
public virtual string user { get; set; }
public virtual string message { get; set; }
}
public class PostMap : ClassMapping<Post>
{
public PostMap()
{
Table("post");
Id(x => x.id, map => { map.Column("id"); });
Property(x => x.user, map => { map.Column("user"); });
Property(x => x.message, map => { map.Column("message"); });
}
}
用户.cs:
public class User
{
public virtual int id { get; set; }
public virtual string user_identifier { get; set; }
public virtual string username { get; set; }
}
public class UserMap : ClassMapping<User>
{
public UserMap()
{
Table("user");
Id(x => x.id, map => { map.Column("id"); });
Property(x => x.user_identifier, map => { map.Column("user_identifier"); });
Property(x => x.username, map => { map.Column("username"); });
}
}
如您所见,我有 2 个“实体”帖子和用户。帖子有一个代表 user_identifier 的用户列。
这是我现在如何从我的数据库中获取所有帖子:
// CriteriaGenerator is only used here to create a criteria object based on filters in the filter object
ICriteria crit = CriteriaGenerator.GenerateCriteria<Post>(session, filters);
IList<Post> posts= crit.List<Post>();
有了这个,我得到了一个帖子对象列表,并且每个人在用户成员中都有 user_identifier 值。
我想更改此行为,以便能够在我的查询中加入用户表,以获取帖子列表,其中每个帖子的“用户”成员都被用户的用户名替换。
冬眠能做到吗?