FluentNHibernate错误 - "无效的对象名称"

Sea*_*een 1 asp.net nhibernate sql-server-2005 fluent-nhibernate

我正在尝试使用FluentNHibernate和Sql2005进行最简单的映射.基本上,我有一个名为"sv_Categories"的数据库表.我想添加一个类别,自动设置ID,并添加提供的用户ID和标题.

数据库表格布局:

  • CategoryID - int - 非null,主键,自动递增
  • UserID - uniqueidentifier - not null
  • 标题 - varchar(50) - 非null

简单.

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();
Run Code Online (Sandbox Code Playgroud)

我的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();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的班级代码:

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 
    }
}
Run Code Online (Sandbox Code Playgroud)

以及我保存对象的页面:

    public void Add(Category catToAdd)
    {
        using (ISession session = SessionProvider.GetSession())
        {
            using (ITransaction Transaction = session.BeginTransaction())
            {
                session.Save(catToAdd);
                Transaction.Commit();
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我收到错误

无效的对象名称"类别".描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.Data.SqlClient.SqlException:无效的对象名称"类别".

我想可能是我没有告诉CategoryMap类使用"sv_Categories"表,但我不知道该怎么做.

任何帮助,将不胜感激.谢谢!

Jam*_*ory 5

使用Table你的方法ClassMap.

public class CategoryMap : ClassMap<Category>
{
  public CategoryMap()
  {
    Table("sv_Categories"); 
  }
}
Run Code Online (Sandbox Code Playgroud)