title: Can't delete child entities with DbLinq
body: <p>This question is related to my <a href="https://stackoverflow.com/questions/12570634/equal-is-not-defined-between-type-nullableint32-and-int32">previous one</a>. You can find pretty much all the code there, with the exceptions reported here. I replaced  nullable fields with int fields and where the generated code put null I put -1. In this way I managed to solve an annoying exception raised by the DbLinq code. But now I can't delete child entities!
  In particular, I have a patient with some addresses associated. The table PatientAddresses holds all the addresses in triplets (PatientID, Address, DomicileStatus), of which the first two members consistute a primary key for the table. I wrote a Test to point out the issue:</p>
  
  <pre><code>static void TestAddresses()
      {
          Patient p1 = CreateRandomPatient();
          PatientAddress a1 = CreateRandomAddress();
  
          p1.Addresses.Add(a1);
          Database.Source.Patients.InsertOnSubmit(p1);
          TestUtility.SaveCloseAndReopen();
  
          Patient p2 = Database.Source.Patients.Single(p =&gt; p.ID == p1.ID);
  
          Debug.Assert(p2.Addresses.Count == 1);
          Debug.Assert(p2.Addresses[0].PatientID == a1.PatientID &amp;&amp; p2.Addresses[0].Address.Equals(a1.Address));
          Debug.Assert(Database.Source.PatientsAddresses.Where(a =&gt; a.PatientID == a1.PatientID &amp;&amp; a.Address == a1.Address).Count() &gt; 0);
  
          p2.Addresses.RemoveAt(0);
          TestUtility.SaveCloseAndReopen();
  
          p2 = Database.Source.Patients.Single(p =&gt; p.ID == p1.ID);
  
          Debug.Assert(p2.Addresses.Count == 0); // &lt;-- HERE
          Debug.Assert(!Database.Source.PatientsAddresses.Contains(a1));
      }
  </code></pre>
  
  <p>The test fails at the indicated line. Long story short, even if I delete an address, it stays in the database. I even tried to delete the corresponding PatientAddress row, but to no avail. I tried three or four variants but I cannot remove addresses from a Patient. 
  The code used to generate those table is the following:</p>
  
  <pre><code>create table Patients (
  ID integer primary key,
  FirstName text not null,
  LastName  text not null,
  Profession text,
  IsMarried integer not null default 0,
  HasChildren integer not null default 0,
  Birthday integer not null    
  );
  
  create table PatientsAddresses (
  PatientID integer,
  Address text,
  DomicileStatus text,
  primary key (PatientID, Address),
  foreign key (PatientID) references Patients(ID)
      on delete cascade 
      on update cascade
  );
  </code></pre>
  
  <p>I can't figure out a way to avoid this behavior, and google doesn't help.</p>