C# 如何解决这一例外情况;找不到属性';产品代码';在课堂上&引用;

C# 如何解决这一例外情况;找不到属性';产品代码';在课堂上&引用;,c#,nhibernate,fluent-nhibernate,C#,Nhibernate,Fluent Nhibernate,我得到以下例外情况: "Could not find a setter for property 'ProductCode'in class ...OrderItem.class " 属性(ProductCode)是我的表键之一 请参见类中的属性声明 public class OrderItem : EntityBase { public virtual short Company { get; set; } public virtual int Order { get; se

我得到以下例外情况:

"Could not find a setter for property 'ProductCode'in class ...OrderItem.class "
属性(ProductCode)是我的表键之一

请参见类中的属性声明

public class OrderItem : EntityBase
{
    public virtual short Company { get; set; }
    public virtual int Order { get; set; }
    public virtual string Seri { get; set; }
    public virtual string ProductCode { get; set; }
    public virtual string Crop { get; set; }
 .
 .
 .
 }
下面是我的地图

public MapOrderItem()
    {
        Table("IPED");
        CompositeId()
            .KeyProperty(c => c.Company, "C_EMP")
            .KeyProperty(c => c.Order, "P_PED")
            .KeyProperty(c => c.Seri, "S_PED")
            .KeyProperty(c => c.ProductCode, "C_PSV");
        Map(c => c.C_CFO).Not.Nullable();
        Map(c => c.AnotherCurrency).Column("V_IPE");
    .
    .
    .
    }
检查了与我类似的疑问,但解决方案并不能解决我的问题。 已尝试使用执行映射

(c => c.ProductCode).Access.ReadOnly();
(c => c.ProductCode).Access.Field();
(c => c.ProductCode).ReadOnly();
要直接在数据库中运行查询,不会显示任何错误,只显示正确的数据。

解决方案 如果使用NHibernate执行SQL,请验证SQL中列的别名。该名称应与类中的属性名称完全相同


e、 g.不正确:

select Product_Id as "ProductCode " 
from Products
请参见别名中的空白。这可能是您的错误的原因


检查sql中所有列的别名。

异常显示为
OrderItem
类?是的,异常在我的OrderItem中。类在
EntityBase
中有什么?它只是一个类,所有其他列都继承它,它有一个日期,我检查以处理存储库。是否覆盖
Equals()
订单项中的