Bonjour à tous,

Je suis en train de modifier le projet NerdDinners afin de pouvoir utiliser NHibernate. Pour le moment je peux créer, modifier. Pour ce qui est de la suppression...impossible. Je comprend pas vraiment le message d'erreur:
{"could not delete collection: [Core.Domain.Model.Dinners.RSVPs#66][SQL: UPDATE RSVP SET DinnerID = null WHERE DinnerID = @p0]"}
Il veux mettre à jour la table RSVP alors que je veux qu'il supprime les données!

Voici le code:
DinnersRepository
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 #region IRepository Delete
        void IRepository<Dinners>.Delete(Dinners entity)
        {
            using (ISession session = NHibernateHelper.OpenSession())
            {
                using (ITransaction transaction = session.BeginTransaction())
                {
                    session.Delete(entity);
                    transaction.Commit();
                }
            }
        }
        #endregion
Dinners.hbm.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   namespace="Core.Domain.Model"
                   assembly="Core">
 
  <!-- Mappings for class 'Dinners' -->
  <class name="Dinners" table="Dinners">
    <cache usage="read-write"/>
 
    <!-- Identity mapping -->
    <id name="DinnerID" column="DinnerID" type="System.Int32">
      <generator class="identity"/>
    </id>
 
    <property name="Title"/>
    <property name="EventDate"/>
    <property name="Description"/>
    <property name="HostedBy"/>
    <property name="ContactPhone"/>
    <property name="Address"/>
    <property name="Country"/>
    <property name="Latitude"/>
    <property name="Longitude"/>
 
    <!-- One-to-many mapping: RSVP -->
    <bag name="RSVPs" table="RSVP" cascade="all" lazy="false" >
      <key column="DinnerID"/>
      <one-to-many class="RSVP"/>
    </bag>
 
  </class>
</hibernate-mapping>
Rsvp.hbm.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   namespace="Core.Domain.Model"
                   assembly="Core">
 
  <class name="RSVP" table="RSVP">
 
    <id name="RsvpID">
      <column name="RsvpID" />
      <generator class="native" />
    </id>
 
    <property name="AttendeeName" />
 
    <many-to-one name="Dinner" class="Dinners" column="DinnerID" cascade="all" lazy="false"/>
 
  </class>
 
</hibernate-mapping>
DinnersControllers.cs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
//
        //GET:/Dinners/Delete/2
        public ActionResult Delete(int id)
        {
            Dinners dinner = dinnerRepository.GetById(id);
 
            if(dinner.HostedBy!=User.Identity.Name)
            {
                return View("InvalidOwner");
            }
 
            if (dinner == null)
            {
                return View("NotFound");
            }
            else
            {
                return View(dinner);
            }
        }
 
        //
        //POST: /DInners/Delete/2
        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Delete(int id, string confirmButton)
        {
            Dinners dinner = dinnerRepository.GetById(id);
            if (dinner.HostedBy != User.Identity.Name)
            {
                return View("InvalidOwner");
            }
 
            if (dinner == null)
            {
                return View("NotFound");
            }
            else
            {
                dinnerRepository.Delete(dinner);
 
                dinnerRepository.Save(dinner);
 
 
                return View("Deleted");
            }
        }
Merci d'avance