2011-05-23 60 views
0

我有一个Nhibernate投影列表问题, 它一直说它无法找到类'Label6.Domain.Product'中属性'Commname'的setter或无法解析属性“pl.commname” 属性“commname”是对象productslangs的一部分。Nhibernate ProjectionList问题

我的产品对象是这样的:

Public Overridable Property Latinname() As System.String 
      Get 
       Return _Latinname 
      End Get 
      Set(ByVal value As System.String) 
       _Latinname = value 
      End Set 
     End Property 
    Public Overridable Property Latinname2() As System.String 
     Get 
      Return _Latinname2 
     End Get 
     Set(ByVal value As System.String) 
      _Latinname2 = value 
     End Set 
    End Property 

    Public Overridable Property productslangs() As IList(Of Productslang) 
     Get 
      Return _productslangstrong text 
     End Get 
     Set(ByVal value As IList(Of Productslang)) 
      _productslangs = value 
     End Set 
    End Property 

我的标准是这样的

Dim crit As ICriteria = session.CreateCriteria(Of Product)() 
       crit.Add(Expression.In(Projections.Property("ID"), aryIds)) 
       crit.CreateAlias("productslangs", "pl") 
       crit.Add(Expression.Eq("pl.LangId", systemSettings.setting.langId)) 
       crit.SetFetchMode("Product.productslangs", FetchMode.Eager) 
       crit.SetProjection(Projections.ProjectionList() _ 
        .Add(Projections.Property("ID"), "ID") _ 
       .Add(Projections.Property("this.Latinname"), "Latinname") _ 
       .Add(Projections.Property("this.Matchcode"), "Matchcode") _ 
       .Add(Projections.Property("this.Price"), "Price") _ 
       .Add(Projections.Property("this.Productgroup"), "Productgroup") _ 
       .Add(Projections.Property("this.colorLookUp"), "colorLookUp") _ 
       .Add(Projections.Property("this.Productsubgroup"), "Productsubgroup") _ 
       .Add(Projections.Property("pl.Commname"), "Commname") 
       ) 
       list = crit.SetResultTransformer(Transform.Transformers.AliasToBean(Of Product)).SetCacheable(True).List(Of Product)() 

有谁能够告诉我在做什么错?

回答

0

投影是数据的平面表示。当您指定AliasToBeanTransformer时,它会占用每行,然后将所有别名映射到您指定类型的属性。由于Product没有名为Commname的属性,因此它会发出抱怨和错误。不知道你想完成什么,但通常你会想创建一个DTO类,它具有投影列表中指定的所有属性。然后在AliasToBeanTransformer规范中将它用作你的bean类。

+0

好的非常感谢我会尽力。 我试图完成的唯一事情是在网格中获得我需要的特定字段。 – 2011-05-24 07:17:12