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); }