我正在尝试使用FluentNHibernate和&amp ;;进行最简单的映射。 SQL2005。基本上,我有一个名为“sv_Categories”的数据库表。我想添加一个类别,自动设置ID,并添加提供的用户ID和标题。
数据库表格布局:
简单。
My SessionFactory code (which works, as far as I can tell):
_SessionFactory = Fluently.Configure().Database(
MsSqlConfiguration.MsSql2005
.ConnectionString(c => c.FromConnectionStringWithKey("SVTest")))
.Mappings(x => x.FluentMappings.AddFromAssemblyOf<CategoryMap>())
.BuildSessionFactory();
我的ClassMap代码:
public class CategoryMap : ClassMap<Category>
{
public CategoryMap()
{
Id(x => x.ID).Column("CategoryID").Unique();
Map(x => x.Title).Column("Title").Not.Nullable();
Map(x => x.UserID).Column("UserID").Not.Nullable();
}
}
我的班级代码:
public class Category
{
public virtual int ID { get; private set; }
public virtual string Title { get; set; }
public virtual Guid UserID { get; set; }
public Category()
{
// do nothing
}
}
我保存对象的页面:
public void Add(Category catToAdd)
{
using (ISession session = SessionProvider.GetSession())
{
using (ITransaction Transaction = session.BeginTransaction())
{
session.Save(catToAdd);
Transaction.Commit();
}
}
}
我收到错误
无效的对象名称“类别”。 描述:未处理的异常 在执行期间发生 当前的网络请求。请查看 堆栈跟踪以获取更多信息 错误及其来源 代码。
异常详细信息: System.Data.SqlClient.SqlException: 无效的对象名称“类别”。
我认为可能是因为我没有告诉CategoryMap类使用“sv_Categories”表,但我不知道该怎么做。
任何帮助将不胜感激。谢谢!
答案 0 :(得分:5)
使用Table
中的ClassMap
方法。
public class CategoryMap : ClassMap<Category>
{
public CategoryMap()
{
Table("sv_Categories");
}
}