У меня возникла проблема, когда я пытаюсь сохранить экземпляр с помощью NHibernate в приложении WPF + C#.Не удается сохранить экземпляр с помощью NHibernate
Отладка, показанная на этапе session.Save(MyInstance);
Вы можете увидеть полный метод ниже. Ошибка:
Необработанное исключение типа 'NHibernate.Exceptions.GenericADOException' произошло в NHibernate.dll Дополнительная информация: не может вставить: [Blog.Models.Province] [SQL: INSERT INTO [ Провинция] (CodProv, NomeProv, Regiao) ЦЕННОСТИ (?,?,?); выберите SCOPE_IDENTITY()]
private void txt_Click(object sender, RoutedEventArgs e)
{
using(ISession session = NHibernateHelper.AbreSession())
{
Province province = new Province();
province.CodProv = "11";
province.NomeProv = "Maputo Cidade";
province.Regiao = "Sul";
ITransaction tx = session.BeginTransaction();
session.Save(province);
tx.Commit();
}
NHibernateHelper Класс
public class NHibernateHelper
{
private static ISessionFactory factory = CriaSessionFactory();
private static ISessionFactory CriaSessionFactory()
{
Configuration cfg = new Configuration();
cfg.Configure();
ISessionFactory factory = Fluently.Configure(cfg)
.Mappings(x =>
{
x.FluentMappings.AddFromAssembly(
Assembly.GetExecutingAssembly());
}).BuildSessionFactory();
return factory;
}
public static ISession AbreSession()
{
return factory.OpenSession();
}
}
Кто-то может мне помочь?
Вот мои Областные и картографирования классы
public class Province
{
public virtual int Id { get; set; }
public virtual string CodProv { get; set; }
public virtual string NomeProv { get; set; }
public virtual string Regiao { get; set; }
}
Mapping класс
public class ProvinceMapping : ClassMap<Province>
{
public ProvinceMapping()
{
Id(province => province.Id).GeneratedBy.Identity();
Map(province => province.CodProv);
Map(province => province.NomeProv);
Map(province => province.Regiao);
}
}
В случае необходимости, вот мой стол провинции сценарий.
CREATE TABLE Provincia(
ID INT IDENTITY(1,1) PRIMARY KEY,
codProv VARCHAR(2) NOT NULL,
nomeProv VARCHAR(25) NOT NULL,
regiao VARCHAR(10));
Вы должны показать свое отображение, но в этом случае было бы почти наверняка «недостающее IDENTITY» на DB Colun Province_ID ... А также важно: ** наблюдать остальные, за исключением ... следующая строка, безусловно, содержит ясный ответ ** –
@ RadimKöhler. Он использует автоматические сопоставления. @ Elmodai, потому что отображение является неявным, не могли бы вы также добавить код для класса «Провинция»? – Aphelion
@MauriceStam это не о картографии. Я бы поспорил, что столбец БД «Провинция_ID» - таблица «Провинция», как ожидается, будет ИДЕНТИЧНОСТЬ ... но я бы сказал, что это не так. Во всяком случае, именно этот ответ находится в исключении ... только следующая строка;) –