【问题标题】:nhibernate paging The column '...' was specified multiple times for 'query'nhibernate paging 列 '...' 被多次指定为 'query'
【发布时间】:2016-12-19 06:28:34
【问题描述】:

在对我的查询使用分页时,出现错误“为 'query' 指定了多次 'Translat2_' 列”。

我的类层次结构:

Politician
--PoliticianInFactions : PoliticianInFaction
--EntityTranslations : Translation

Faction
--PoliticiansInFaction : PoliticianInFaction
--EntityTranslations : Translation

Translation
--Name : String
--Language : Language

我想要的是:获取按其派系名称而不是其名称排序的政客。 我的查询:

var criteria = Session.CreateCriteria<Politician>("politician");

// criteria for current faction
var currentFactionCriteria = criteria
    .CreateCriteria<Politician>(x => x.PoliticianInFactions, JoinType.InnerJoin)
    .Add<PoliticianInFaction>(x => x.FromDate <= DateTime.Now)
    .CreateCriteria<PoliticianInFaction>(x => x.Faction, JoinType.InnerJoin);

// add order by faction's name !!!
currentFactionCriteria
    .CreateCriteria<Faction>(x => x.EntityTranslations, JoinType.InnerJoin)
    .Add<Translation>(x => x.Language.Id == languageId)
    .AddOrder<CityTranslation>(x => x.Name, Order.Asc);

// add order by politician's name !!!
criteria
    .CreateCriteria<Politician>(x => x.EntityTranslations, JoinType.InnerJoin)
    .Add<Translation>(x => x.Language.Id == languageId)
    .AddOrder<Translation>(x => x.Name, Order.Asc);  

向此查询添加分页时出现错误。没有分页一切正常。此外,如果我评论(删除)任何标有(!!!)异常消失的块。 我究竟做错了什么?如果这是 NHibernate 的错误,请给我一些解决方法。谢谢你。

【问题讨论】:

  • 如果您使用 NHibernate Lambda 扩展,我认为我在使用两个同名列时遇到了类似的错误。您是否尝试过仅使用 Criteria API 编写它?

标签: nhibernate fluent-nhibernate pagination


【解决方案1】:

检查您的映射文件,看看您是否已将多个属性映射到同一数据库列或将同一数据库列映射到多个属性。

【讨论】:

    【解决方案2】:

    我知道这是一个古老的线程,但这个问题最近一直困扰着我。

    我发现映射中属性调用的情况与分页有关。 IE。如果您有一个属性的列名为“field”,并且您也将其映射到另一个属性,那么如果 field 的大小写相同,这将不是问题。

    但是,如果您使用名为“字段”的列来标识您的其他映射,分页将不会知道这不是一个独特的属性,并且会尝试查询同一列两次!

    【讨论】:

      【解决方案3】:

      我猜你有一个 CASE 或重复的问题。在我的问题中,我有以下情况:

      我两次使用“serie id”列,但方式不同。我将“S”放在下排和上排。希望对您有所帮助..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-03
        • 2011-03-14
        • 1970-01-01
        • 2017-02-13
        • 2017-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多