簡體   English   中英

NHibernate子項查詢,使用父ID

[英]NHibernate Child items query using Parent Id

因此,我有一個類似於以下問題的設置父子設置

拯救父母和孩子,一切都很好。

但是,選擇孩子時我似乎有問題。 我似乎無法讓所有孩子都有一個特定的父母。

失敗的原因是:NHibernate.QueryException:無法解析屬性:Test.Data.ChildEntity的ParentEntity_id

這是我的代碼:

    public IEnumerable<ChildEntity> GetByParent(ParentEntity parent)
    {
        using (ISession session = OrmHelper.OpenSession())
        {

            return session.CreateCriteria<ChildEntity>().Add(Restrictions.Eq("ParentEntity_id ", parent.Id)).List<ChildEntity>();
        }
    }

任何幫助構建適當功能以獲取所有項目的幫助將不勝感激。

哦,我正在使用Fluent NHibernate來構建映射-版本1 RTM和NHibernate 2.1.2 GA

如果您需要更多信息,請告訴我。

根據您的要求,我的流利的映射:

            public ParentEntityMap()
    {
        Id(x => x.Id);          
        Map(x => x.Name);           
        Map(x => x.Code).UniqueKey("ukCode");
        HasMany(x => x.ChildEntity).LazyLoad()
            .Inverse().Cascade.SaveUpdate();
    }

    public ChildEntityMap()
    {
        Id(x => x.Id);
        Map(x => x.Amount);
        Map(x => x.LogTime);
        References(x => x.ParentEntity);                
    }

映射到以下兩個表:

CREATE TABLE "ParentEntity" (
Id  integer,
Name TEXT, 
Code TEXT,
primary key (Id),
unique (Code)
)

CREATE TABLE "ChildEntity" (
Id  integer,
Amount NUMERIC,
LogTime DATETIME,
ParentEntity_id INTEGER, 
primary key (Id)
)

數據存儲在SQLite中。

return session.CreateCriteria<ChildEntity>()
  .Add(Restrictions.Eq("ParentEntity", parent))
  .List<ChildEntity>();

只需使用父項本身即可。

在您的條件中,您不應引用列名稱,而應引用屬性名稱。 將“ ParentEntity_id”更改為“ ParentEntity.Id”,這應該可以解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM