2
我有一个简单的对象与三个属性。这链接到一个有三列的表,其中两列是主键(一个int是另一个日期时间)。流利Nhibernate,复合键,不能解决属性:错误消息
每当我试着和查询NHibernate的我收到以下错误信息:
无法解析属性:invdate的:Models.Invoice
我错过了一些简单的设置我的映射或者我在做我的查询错误?
对象代码:
public class Invoice
{
public Invoice() { }
#region Properties
public virtual int Acct_Link { get; private set; }
public virtual DateTime Added { get; private set; }
public virtual DateTime InvDate { get; private set; }
public static Invoice GetInvoiceByFluent(int accountId, DateTime invoiceDate)
{
Invoice invoice;
using (ISession session = FluentNHibernateHelper.OpenSession())
{
invoice = session
.CreateCriteria<Invoice>()
.SetMaxResults(1)
.Add(Expression.Eq("Acct_Link", accountId))
.Add(Expression.Eq("invdate", invoiceDate))
.UniqueResult<Invoice>();
}
return invoice;
}
#region Nhibernate overrides
public override bool Equals(object obj)
{
if (obj == null)
return false;
Invoice i = obj as Invoice;
return this.GetHashCode() == i.GetHashCode();
}
public override int GetHashCode()
{
return this.Acct_Link.GetHashCode()^this.InvDate.GetHashCode();
}
#endregion
}
映射代码:
public class InvoiceMap: ClassMap<Invoice>
{
public InvoiceMap()
{
Table("Invoice");
CompositeId()
.KeyProperty(i => i.Acct_Link, "Acct_Link")
.KeyProperty(i => i.InvDate, "InvDate");
Map(i => i.Added);
}
}
如果我拿出参考我的查询到invdate那么这个工作正常。
在此先感谢。
谢谢。不能相信我错过了这么简单的事情! – lancscoder 2010-02-24 15:36:51
不用担心,使用*魔法字符串时,它总是会发生* :-) – 2010-02-24 15:42:31