我正在努力让FluentNHibernate运行起来。
当我尝试将实体对象添加到db时,我在内部异常中得到“无效对象名称'Recipe'错误,这是主要异常
无法插入:[OurRecipes.Domain.Recipe] [SQL:INSERT INTO Recipe(EnteredByID,ModifiedOn,Method,PrepTime,CookTime,RecipeTitle)VALUES(?,?,?,?,?,?);选择SCOPE_IDENTITY()]
这就是我配置它的方式。
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();
}
这是我第一次这样做......
即使在我的域项目中似乎没有识别出“Recipe”类 此配置运行时没有错误。
这是我在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);
}
编辑:不好意思,SQL表的名字是Recipes .....好吧,它已经很晚了!答案 0 :(得分:2)
您对食谱的映射是什么样的?我敢打赌,你没有定义表名。您的映射类应如下所示:
public class RecipeMap : ClassMap<Recipe>
{
public RecipeMap()
{
SchemaIs("dbo");
WithTable("Recipes");
[... additional mappings ...]
}
}