FluentNHibernate错误 - “无效的对象名称”

时间:2010-05-16 15:03:35

标签: asp.net sql-server-2005 nhibernate fluent-nhibernate

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

数据库表格布局:

  • CategoryID - int - 非null,主键,自动递增
  • UserID - uniqueidentifier - not null
  • 标题 - varchar(50) - not 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();

我的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”表,但我不知道该怎么做。

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:5)

使用Table中的ClassMap方法。

public class CategoryMap : ClassMap<Category>
{
  public CategoryMap()
  {
    Table("sv_Categories"); 
  }
}