代码之家  ›  专栏  ›  技术社区  ›  nfplee

超越LINQ查询的NHibernate映射属性

  •  0
  • nfplee  · 技术社区  · 14 年前

    我的应用程序具有以下实体:

    public class User
    {
        public virtual int UserID { get; set; }
        public virtual Membership LatestMembership { get { return Membership.First(); } }
        public virtual IList<Membership> Membership { get; set; }
    
        public User()
        {
            Membership = new List<Membership>();
        }
    }
    

    public UserMap()
    {
        Table("Users");
        Id(x => x.UserID);
        HasMany(x => x.Membership)
            .KeyColumn("UserID")
            .OrderBy("DateAdded DESC")
            .Inverse()
            .Cascade.All();
    }
    

    到目前为止还不错,但是现在我想做以下的事情(我知道这会返回所有的结果,但我只是用这个作为例子):

    var users = session.Linq<User>()
        .Where(u => u.LatestMembership.DateAdded < DateTime.UtcNow);
    

    我想知道是否有一个替代方法,我可以映射这个或你的建议是什么。谢谢

    1 回复  |  直到 14 年前
        1
  •  1
  •   Community ahmed    7 年前

    不幸的是,使用当前的Linq提供程序确实不可能做到这一点。有件事你 this post .

    另一个可能的解决方案是从 Membership 查询与所讨论的用户匹配的最新成员资格,并进行相应的筛选。