Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Nhibernate投影问题_Vb.net_Nhibernate - Fatal编程技术网

Vb.net Nhibernate投影问题

Vb.net Nhibernate投影问题,vb.net,nhibernate,Vb.net,Nhibernate,我对Nhibernate的投影列表有意见, 它一直说在类“Label6.Domain.Product”中找不到属性“Commname”的setter,或者无法解析属性pl.Commname 属性commname是对象productslangs的一部分 我的产品对象如下所示: Public Overridable Property Latinname() As System.String Get Return _Latinname

我对Nhibernate的投影列表有意见, 它一直说在类“Label6.Domain.Product”中找不到属性“Commname”的setter,或者无法解析属性pl.Commname 属性commname是对象productslangs的一部分

我的产品对象如下所示:

  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)()

谁知道我做错了什么吗?

投影是数据的平面表示。指定AliasToBeanTransformer时,它会获取每一行,然后将所有别名映射到指定类型的属性。由于产品并没有名为Commname的属性,所以它会抱怨并出错。不确定要完成什么,但通常需要创建一个DTO类,该类具有投影列表中指定的所有属性。然后将其用作AliasToBeanTransformer规范中的bean类。

好的,非常感谢,我会尝试一下。我唯一想做的就是在网格中获得一些我需要的特定字段。