public void UpdatePrimitiveListProperties()
 {
     const string type = "ClassWithIntArr";
     var types = FluentConfiguration.Start().DefaultIdProperty(IdentityField)
           .DefaultDiscriminatorColumnName(DefaultDiscriminator)
          .AddTypeAuto<ClassWithIntArr>()
          .GenerateTypeMappings();
     var provider = new TestProvider(types);
     var queryBuilder = new QueryBuilder(provider);
     var plan = queryBuilder.GetUpdate(type, new[] { "Arr" });
     Assert.AreEqual(2, plan.Parts.Count());
     Assert.AreEqual("DELETE FROM [M1] FROM [ClassWithIntArr_Arr] AS [M1] WHERE [M1].[ParentId] = @p0", plan.Parts.First().SqlString);
     Assert.AreEqual("INSERT INTO [ClassWithIntArr_Arr] ([ParentId], [Value], [Index]) VALUES(@p0, @p1, @p2)", plan.Parts.Last().SqlString);
 }
 public void UpdateSimpleProperties()
 {
     const string type = "BaseClass";
     const string path = "Prop1";
     var types = FluentConfiguration.Start().DefaultIdProperty(IdentityField).AddType<BaseClass>(z => z.AllProperties()).GenerateTypeMappings();
     var provider = new TestProvider(types);
     var queryBuilder = new QueryBuilder(provider);
     var plan = queryBuilder.GetUpdate(type, new [] { path });
     Assert.AreEqual(1, plan.Parts.Count());
     Assert.AreEqual("UPDATE [M1] SET [M1].[Prop1] = @p1 FROM [BaseClass] AS [M1] WHERE [M1].[ObjectId] = @p0", plan.Parts.First().SqlString);
 }
 public void UpdateDerivedroperties()
 {
     const string type = "DerivedClass";
     var types = FluentConfiguration.Start().DefaultIdProperty(IdentityField)
         .AddTypeAuto<BaseClass>()
         .AddTypeAuto<DerivedClass>()
         .GenerateTypeMappings();
     var provider = new TestProvider(types);
     var queryBuilder = new QueryBuilder(provider);
     var plan = queryBuilder.GetUpdate(type, new [] { "Prop1", "Prop2" });
     Assert.AreEqual(2, plan.Parts.Count());
     Assert.AreEqual("UPDATE [M1] SET [M1].[Prop1] = @p1 FROM [BaseClass] AS [M1] WHERE [M1].[ObjectId] = @p0", plan.Parts.First().SqlString);
     Assert.AreEqual("UPDATE [M1] SET [M1].[Prop2] = @p1 FROM [DerivedClass] AS [M1] WHERE [M1].[ObjectId] = @p0", plan.Parts.Last().SqlString);
 }