title: SQLite.Net Extensions issue with InsertOrReplaceWithChildren
body: <p>I am using SQLite-Net PCL together with SQLite-Net extensions for the development of an application using Xamarin.</p>
  
  <p>I have two classes <code>A</code> and <code>B</code> defined as follows:</p>
  
  <pre><code>public class A
  {
  
      [PrimaryKey, AutoIncrement]
      public int Id
      {
          get;
          set;
      }
  
      [Unique]
      public string Name
      {
          get;
          set;
      }
  
      [OneToMany(CascadeOperations = CascadeOperation.All)]
      public List&lt;B&gt; Sons
      {
          get;
          set;
      }
  
      public A(string name, List&lt;B&gt; sons)
      {
          Name = name;
          Sons = sons;
      }
  
  }
  
  public class B
  {
  
      [PrimaryKey, AutoIncrement]
      public int Id
      {
          get;
          set;
      }
  
      [Unique]
      public string Name
      {
          get;
          set;
      }
  
      public string LastModified
      {
          get;
          set;
      }
  
      [ForeignKey(typeof(A))]
      public int FatherId
      {
          get;
          set;
      }
  
      [ManyToOne]
      public A Father
      {
          get;
          set;
      }
  
      public B()
      {
      }
  
      public B(string name)
      {
          Name = name;
      }
  
  }
  </code></pre>
  
  <p>I am trying to use insert or replace in the following way:</p>
  
  <pre><code>        var sons1 = new List&lt;B&gt;
          {
              new B("uno"),
          };
  
          var a1 = new A("padre", sons1);
  
          var sons2 = new List&lt;B&gt;
          {
              new B("uno2"),
          };
  
          var a2 = new A("padre", sons2);
  
          using (var conn = DatabaseStore.GetConnection())
          {
              conn.DeleteAll&lt;A&gt;();
              conn.DeleteAll&lt;B&gt;();
          }
  
          using (var conn = DatabaseStore.GetConnection())
          {
              conn.InsertOrReplaceWithChildren(a1, true);
              conn.InsertOrReplaceWithChildren(a2, true);
          }
  </code></pre>
  
  <p>The problem is that the second <code>InsertOrReplaceWithChildren</code> is throwing a <code>Constraint</code> exception, that is not thrown if we remove the unique constraint on <code>A.Name</code>. Isn't   <code>InsertOrReplaceWithChildren</code> supposed to replace the object if a unique constraint is violated?</p>