我有用户和视频,我想在用户类下看到用户视频,在视频课中看视频用户;我不知道如何在视频课程下向用户类和视频用户填充用户视频。
映射>
public UserMap()
{
Id(x => x.UserId);
Map(x => x.FirstName);
Map(x => x.LastName);
Map(x => x.Email);
Map(x => x.Password);
Map(x => x.Type);
HasMany(x => x.Videos);
}
public VideoMap()
{
Id(x => x.VideoId);
Map(x => x.UserId);
Map(x => x.VideoTypeId);
Map(x => x.Status);
Map(x => x.Image);
HasOne(x => x.User)
}
课程>
public class User
{
public virtual int UserId { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual string Email { get; set; }
public virtual string Password { get; set; }
public virtual int Type { get; set; }
public virtual List<Video> Videos { get; set; }
}
public class Video
{
public virtual int VideoId { get; set; }
public virtual int UserId { get; set; }
public virtual int VideoTypeId { get; set; }
public virtual string Status { get; set; }
public virtual string Image { get; set; }
public virtual User User { get; set; }
}
方法&gt;
public static IList<Entities.Video.Video> All()
{
using (var session = NHibernateHelper.OpenSession())
{
IList<Entities.Video.Video> videos = session.Query<Entities.Video.Video>(
.Where(C => C.User.UserId == C.UserId).ToList();
return videos;
}
}
答案 0 :(得分:1)
首先,在您的模型类中,您应该使用IList而不是List。 并尝试使用映射
public UserMap()
{
Id(x => x.UserId);
Map(x => x.FirstName);
Map(x => x.LastName);
Map(x => x.Email);
Map(x => x.Password);
Map(x => x.Type);
HasMany(x => x.Videos).KeyColumn("keyColumn");
}
public VideoMap()
{
Id(x => x.VideoId);
Map(x => x.UserId);
Map(x => x.VideoTypeId);
Map(x => x.Status);
Map(x => x.Image);
References(x => x.User).Column("keyColumn");
}
其中keyColumn是包含视频的表的主键。
并获取用户类似的视频
IList<Video> videos = session.CreateCriteria(typeof(Video)).CreateAlias("User", "user").Add(Restrictions.Eq("user.UserId", id)).List<Video>().ToList();