J'ai joué avec NHiberNate, je l'ai eu pour travailler avec xml definision, mais je suis coincé dans mon test Map by Code. J'ai le code suivant:NhiberNate Carte par code ne contient pas de définition pour 'id'
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Mapping.ByCode;
using NHibernate.Mapping.ByCode.Conformist;
using NHibernate.Mapping;
namespace NHibernatePets
{
public class Pet
{
virtual public int id { get; set; }
virtual public string PetName { get; set; }
virtual public string Species { get; set; }
virtual public DateTime Birthday { get; set; }
virtual public string Speak()
{
return "Hi. My name is '" + PetName + "' and I'm a " + Species + " born on " + Birthday + ".";
}
}
public class PetMap : ClassMapping<Pet>
{
public PetMap()
{
table("Pet");
Lazy(true);
Id(x => x.Id, map => map.Generator(Generators.Identity));
Property(x => x.Petname, map => map.NotNullable(true));
Property(x => x.Species, map => map.NotNullable(true));
Property(x => x.Birthday, map => map.NotNullable(true));
}
Quand je frappe f5 je me donne erreur suivant mesage
Erreur 15 'NHibernatePets.Pet' ne contient pas de définition de 'Id' et aucune méthode d'extension « Id » accepter un premier argument de type « NHibernatePets.Pet » n'a pu être trouvée (vous manque une directive à l'aide ou une référence d'assemblage?) }
Mon plan était d'être en mesure de faire une requête sur la PET d atabase comme ceci
using (ISession session = OpenSession())
{
IQuery query = session.CreateQuery(" FROM Pet");
IList<Pet> pets = query.List<Pet>();
Console.Out.WriteLine("pets.Count = " + pets.Count);
pets.ToList().ForEach(p => Console.WriteLine(p.Speak()));
}
Cela a fonctionné quand j'ai utilisé xml pour mapper la table. Qu'est-ce que je fais de mal ici?
Il a résolu le problème. Merci – havmaage
Profitez de NHibernate puissant, monsieur;) –