我有用户和视频,我想在用户类下看到用户的视频,在视频类下看到用户的视频;我不知道如何将用户的视频填充到该用户类和视频类下的视频用户
映射>
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; }
}
方法>
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;
}
}
首先,在您的模型类中,您应该使用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();