Je souhaite utiliser certaines des recherches prédéfinies sans roundrips dans Database dans NHibernate.Recherches statiques dans NHibernate
En fait, je voudrais avoir le code comme ceci:
public class Countries
{
static Countries() {
Australia = new Country
{
Id = 14,
Description = "Australia"
}
}
public static Country Austrlia { get; protected set }
}
écrire alors ce extraits de code:
address.Country = Countries.Australia;// Snippet1
if (address.Country == Countries.Australia) { // Snippet2
// Do something
}
Je ne surchargent equals, GetHashCode et de surcharge, même les opérateurs == et = pour la recherche de classe de pays. Le Snippet1 fonctionne UNIQUEMENT si le pays avec Id donné n'a pas été chargé en mémoire. Sinon, il lève NonUniqueObjectException en disant que l'objet avec Id donné est déjà en mémoire. Pour contourner ce problème, je dois expulser le pays chargé, puis affecter la valeur de recherche. Cela semble incorrect et je ne suis pas sûr de ce qui se passera lorsque la requête pour la recherche de pays sera à nouveau exécutée. Donc, la question est: Comment maintenir les classes de recherche statique dans NHibernate?
Merci, Dmitriy.
Merci. Bon. Mais pas exactement ce dont j'ai besoin. Je vais essayer d'être plus précis: 1) adresse.Pays = Pays.Australie QUAND adresse.Pays a déjà été attribué et persisté. Il provoque NonUniqueObjectException. ET 2) address.Country = Session.get (UserSelectedIdFromScreen) QUAND: Liste des pays est peuplé de base de données et pas de code. Seules quelques valeurs prédéfinies sont connues dans le code. D'autres viennent de DB. –