代码之家  ›  专栏  ›  技术社区  ›  Jake Stevenson

根据<ANY>映射的NHibernate标准

  •  2
  • Jake Stevenson  · 技术社区  · 16 年前

    我有一个项目模型,它的属性类型是IProjectWorker,可以是单个用户,也可以是团队。在Castle ActiveRecord中定义如下:

    [Any(typeof(int), MetaType = typeof(string), TypeColumn = "WorkerType", IdColumn = "WorkerID", Cascade = CascadeEnum.None)]
    [Any.MetaValue("USER", typeof(User))]
    [Any.MetaValue("TEAM", typeof(Team))]
    public IProjectWorker Worker { get; set; }
    

    现在,我需要能够搜索的项目,其中工人的名字包含一些文字。我最初的反应是这样的:

    query
       .CreateAlias("Worker", "Worker")
       .Add(Restrictions.InsensitiveLike("Worker.WorkerName", SearchText, MatchMode.Anywhere));
    

    我可以为每个表创建两个不同的别名并在它们之间做一个限制。或()?我试过了,但没能完全弄好。或者有没有其他方法来使用我缺少的标准?或者我必须使用HQL来代替?

    0 回复  |  直到 16 年前
    推荐文章