J'ai la propriété suivante sur une classe avec NHibernate persisté:Est-il possible que NHibernate génère automatiquement une propriété à partir de l'ID?
public virtual string Code
{
get { return Id.ToString("SP000"); }
}
Cependant, je suis venu à ce faire, ce qui bien sûr ne fonctionne pas:
Session.Linq<MyType>().Where(x => x.Code.Contains(searchTerm));
Alors, est-il possible pour stocker le code dans la base de données et avoir NHibernate gérer le
.ToString("SP000")
pour définir le code, lorsque l'ID est défini? Edit: Je suppose que j'ai besoin d'un intercepteur, mais je ne suis pas sûr de savoir comment mettre en œuvre ce dont j'ai besoin. Toute aide appréciée
Merci
Andrew
Merci pour la suggestion mais je ne peux pas utiliser HQL parce que j'ai des motifs d'abstraction encapsulant l'ISession derrière une interface IQueryable donc je dois utiliser LINQ. Je ne veux pas non plus que des chaînes magiques (la HQL) flottent à peu près. Je ne me soucie pas d'avoir Code dans la DB, je ne cherche pas à l'éviter, il suffit de l'implémenter –
OK. Créez une vue qui contient la colonne de code et mappez-la en tant que propriété en lecture seule dans votre objet en mappant la vue à la place de la table. –