2009-04-07 7 views
1

J'essaie de faire fonctionner FluentNHibernate.FluentNHibernate: Nom d'objet invalide sur SaveOrUpdate

Lorsque je tente d'ajouter un objet entité à la db je reçois une erreur « non valide nom d'objet « recette » à l'exception intérieure et ce à l'exception principale

ne pouvait pas insérer: [OurRecipes.Domain.Recipe] [ SQL: INSERT INTO Recette (EnteredByID, ModifiedOn, Méthode, PrepTime, CookTime, RecipeTitle) VALEURS (?,?,?,?,?), Sélectionnez SCOPE_IDENTITY()]

Voici comment je le configure.

public static ISessionFactory Create() 
    { 
     return Fluently.Configure() 
      .Database(MsSqlConfiguration.MsSql2005 
      .ConnectionString(c => c.Is("Server=(local);initial catalog=OurRecipesDB;Integrated Security=SSPI"))) 
      .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Recipe>()) 
      .BuildSessionFactory(); 
    } 

Ceci est ma première visite à ce moment ....

Il ne semble pas reconnaître la classe 'Recipe' dans mon projet de domaine même si cette configuration s'exécute sans erreurs.

Ceci est le code où j'obtiens l'erreur sur la ligne SaveOrUpdate.

 var factory = SessionFactoryCreator.Create(); 

     using (var session = factory.OpenSession()) 
     { 

      Recipe rec = new Recipe(); 
      rec.RecipeTitle = "test"; 
      rec.Method = "test"; 
      rec.PrepTime = 10; 
      rec.CookTime = 20; 
      rec.EnteredByID = 1; 
      rec.ModifiedOn = DateTime.Now; 

      session.SaveOrUpdate(rec); 

}

EDIT: Désolé les gars le nom de la table SQL est Recettes ..... Eh bien sa fin ici!

Répondre

2

À quoi ressemble votre mapping pour Recipe? Mon pari est que vous n'avez pas défini le nom de la table. Votre classe de cartographie devrait ressembler à quelque chose comme:

public class RecipeMap : ClassMap<Recipe> 
{ 
    public RecipeMap() 
    { 
     SchemaIs("dbo"); 
     WithTable("Recipes"); 
     [... additional mappings ...] 
    } 
} 
+0

Cela a résolu un problème similaire que j'avais. Merci! –

Questions connexes