2010-05-16 3 views
1

Я пытаюсь сделать самое простое из сопоставлений с FluentNHibernate & Sql2005. В принципе, у меня есть таблица базы данных, называемая «sv_Categories». Я бы хотел добавить категорию, автоматически установив идентификатор и добавив идентификатор пользователя и заголовок.Ошибка FluentNHibernate - «Недопустимое имя объекта»

таблицы базы данных макета:

  • CategoryID - Int - не-нулевой, первичный ключ, Автоинкрементный
  • UserID - UniqueIdentifier - не нулевой
  • Заголовок - VARCHAR (50) - не имеет значения

Простой.

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», но я не уверен, как это сделать.

Любая помощь будет оценена по достоинству. Благодаря!

ответ

5

Используйте метод Table в вашем ClassMap.

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

Это было! Спасибо огромное! :) – SeanKilleen

Смежные вопросы