Как мне удалить запись? - PullRequest
       2

Как мне удалить запись?

0 голосов
/ 06 сентября 2010

Я пытаюсь удалить запись базы данных, используя ASP.NET MVC, Fluent и NHibernate.Посмотрите код ниже для примеров того, как я пытаюсь сделать это.Я могу получать, обновлять и вставлять записи, но удаление не работает.Когда метод Delete () вызывается в контроллере (верхний), он генерирует исключение (System.Data.SqlClient.SqlException: Invalid object name 'Styles'.).

Я хотел бы избежать любого вида запроса мета-SQL, потому что я не хочуЖесткий код имени таблицы в контроллер, если мне не нужно.

Фрагмент контроллера :

// POST: /Brand/Delete/5
// Here is the handler in the controller
[HttpPost]
public ActionResult Delete(int id, FormCollection collection)
{
    try
    {
        IRepository<Brand> repo = new BrandRepository();
        repo.Delete(id);

        return RedirectToAction("Index");
    }
    catch
    {
        throw;
    }
}

Фрагмент репозитория :

//Here is the repository
//The insert/update/get/etc all work fine
void IRepository<Brand>.Delete(int id)
{
    using (ISession session = NHibernateHelper.OpenSession())
    {
        using (ITransaction transaction = session.BeginTransaction())
        {
            IRepository<Brand> repo = new BrandRepository();

            session.Delete(repo.GetById(id));
            transaction.Commit();
        }
    }
}

Фрагмент отображения :

//And here is the mapping for a Brand
public class BrandMap : ClassMap<Brand>
{
    public BrandMap()
    {
        Table("Brands");
        Id(x => x.Id).GeneratedBy.Identity();
        Map(x => x.Name);
        HasMany(x => x.Styles)
            .Inverse()
            .Cascade.All();
    }
}

1 Ответ

1 голос
/ 06 сентября 2010

Похоже, что отображение свойства Styles неверно.Вы используете правильное имя таблицы?Из исключения кажется, что такой таблицы нет Styles.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...