Файл AppConfig написал правильно, ибо выводит данные
Файл Employers.xbm.xml:
XML |
1
2
3
4
5
6
7
8
9
10
11
12
| <?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Hibernate" assembly="Hibernate">
<class name="Employers" table="Employers" dynamic-update="true">
<cache usage="read-write"/>
<id name="ID" column="ID">
<generator class="identity"/>
</id>
<property name="Name" column="Name"/>
<property name="Second_name" column="Second_name"/>
<property name="Last_name" column="Last_name"/>
</class>
</hibernate-mapping> |
|
Код сохранения: //решил сделать отдельную форму для добавления данных, думаю из-за этого что-то не работает
C# |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
| using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using NHibernate;
using NHibernate.Cfg;
using System.Data.SqlClient;
namespace Hibernate
{
public partial class AddEmp : Form
{
ISession mySession;
Configuration myConfiguration;
ISessionFactory mySessionFactory;
public AddEmp(ISession session, ISessionFactory sessionFactory1)
{
InitializeComponent();
myConfiguration = new Configuration();
myConfiguration.Configure();
mySessionFactory = myConfiguration.BuildSessionFactory();
mySession = mySessionFactory.OpenSession();
}
private void button1_Click(object sender, EventArgs e)
{
string name = textBox2.Text;
if(name.Length > 50)
{
MessageBox.Show("Длина поля Имя должна быть не больше 50");
return;
}
string Second_name = textBox3.Text;
if (Second_name.Length > 50)
{
MessageBox.Show("Длина поля Фамилия должна быть не больше 50");
return;
}
string Last_name = textBox4.Text;
if (Last_name.Length > 50)
{
MessageBox.Show("Длина поля Отчество должна быть не больше 50");
return;
}
// Insert employer in Database
Employers emp1 = new Employers();
emp1.Name = name;
emp1.Second_Name = Second_name;
emp1.Last_name = Last_name;
try
{
using (mySession.BeginTransaction())
{
mySession.Save(emp1); //здесь ошибка NHibernate.MappingException: "No persister for: Hibernate.Employers"
mySession.Transaction.Commit();
MessageBox.Show("Данные сохранены");
}
}
catch(Exception exc)
{
MessageBox.Show("Ошибка сохранения данных\n"+exc);
}
}
}
} |
|