Har stött på lite patrull i mitt NHibernate:ande
Har mappat en klass och allt funkar med Load och Save, men Flushen vill sig inte riktigt ....
Det är ett gäng vanliga sträng-properties i klassen, men Id är en Int32 och generator modell "native" (det är en vanlig auto increment primary key i tabellen)
Om jag Loadar mitt objekt, borde det inte gå att direkt manipulera objektegenskaper (utom Id), och sen genast köra en Flush(); ?
Även om jag skapar en new och sen kör Save() så funkar det fint med increment osv, så allt verkar ju i sin ordning.... kan man tycka :q
Mappning
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="plan9_CSharp.Melodifest, plan9_CSharp" table="Melodifest">
<id name="Id" type="Int32">
<generator class="native" />
</id>
<property name="Name" type="String" length="100"/>
<property name="Description" type="String" length="1000"/>
<property name="Song_1" type="String" length="100"/>
<property name="Song_2" type="String" length="100"/>
<property name="Song_3" type="String" length="100"/>
<property name="Song_4" type="String" length="100"/>
<property name="Song_5" type="String" length="100"/>
<property name="Song_6" type="String" length="100"/>
<property name="Song_7" type="String" length="100"/>
<property name="Song_8" type="String" length="100"/>
<property name="DateStartVote" column="DateStart" type="DateTime" />
<property name="DateStopVote" column="DateStop" type="DateTime" />
<property name="RuleId" type="Int32"/>
<property name="Winners_A" type="String"/>
<property name="Winners_B" type="String"/>
</class>
</hibernate-mapping>
Lite kod
NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
cfg.AddAssembly("plan9_CSharp");
ISessionFactory factory = cfg.BuildSessionFactory();
ISession session = factory.OpenSession();
ITransaction transaction = session.BeginTransaction();
M = (Melodifest)session.Load(typeof(Melodifest),int.Parse(ddl_songs.SelectedItem.Value));
M.Name = Name.Text;
M.DateStopVote = DateTime.Parse(DateStop.Text);
M.DateStartVote = DateTime.Parse(DateStart.Text);
M.RuleId = int.Parse(ddl_pointssystem.SelectedItem.Value);
M.Description = Description.Text;
M.Song_1 = Song1.Text;
M.Song_2 = Song2.Text;
M.Song_3 = Song3.Text;
M.Song_4 = Song4.Text;
M.Song_5 = Song5.Text;
M.Song_6 = Song6.Text;
M.Song_7 = Song7.Text;
M.Song_8 = Song8.Text;
M.Winners_A = Winners_A.Text.Replace(" ", "").Trim(',');
M.Winners_B = Winners_B.Text.Replace(" ", "").Trim(',');
session.Flush(); // <---------------- funkar ej
session.Close();