NHibernate ma atrybut na elemencie właściwości w konfiguracji odwzorowania o nazwie "formuła", która pozwala iniekcji sql "obliczyć" właściwość. Problem, który mam, to formuła bezpośrednio używająca składni sql. Czy istnieje sposób, aby nhibernate.linq używał wyrażenia lambda zamiast używać właściwości formuły.NHibernate linq - Użyj wyrażenia lambda zamiast atrybutu formuły na mapowaniu
mam następujące:
public class Invoice
{
public virtual int Id { get; protected set; }
public virtual decimal Amount { get; set; }
public virtual decimal Paid { get; set; }
public virtual decimal Balance
{
get { return BalanceExpression.Expression.Compile().Invoke(this); }
}
}
public class BalanceExpression
{
public static Expression<Func<Invoice, decimal>> Expression
{
get { return i => i.Amount - i.Paid; }
}
}
<class name="Invoice">
<id name="Id">
<generator class="hilo"/>
</id>
<property name="Amount"/>
<property name="Paid"/>
<property name="Balance" formula="Amount - Paid" access="readonly"/>
</class>
Chcę NHibernate używać balanceexpression.expression zamiast umieścić składni SQL w atrybucie wzorze więc mogę usunąć atrybut wzór z mojego mapowania config i pisać zapytania w następujący sposób:
od i w session.linq() gdzie i.balance> 0 wybierz i;
Jak wstawić wyrażenie balanceexpression.express do zapytania linq?