public void TestDynamicColumnStoreStaticExpressionAccessors([IncludeDataSources(true, TestProvName.AllSQLite)] string context) { StaticGetterSetterExpressionMethods.InstanceValues.Clear(); var ms = new MappingSchema(); ms.GetFluentMappingBuilder() .Entity <StaticGetterSetterExpressionMethods>() .Property(x => Sql.Property <string>(x, "Name")); using (var db = GetDataContext(context, ms)) using (db.CreateLocalTable <DynamicColumnsTestFullTable>()) { var obj = new StaticGetterSetterExpressionMethods { Id = 5 }; StaticGetterSetterExpressionMethods.InstanceValues.Add(5, new Dictionary <string, object>()); StaticGetterSetterExpressionMethods.InstanceValues[5].Add("Name", "test_name"); db.Insert(obj); StaticGetterSetterExpressionMethods.InstanceValues.Clear(); var data = db.GetTable <StaticGetterSetterExpressionMethods>().ToList(); Assert.AreEqual(1, data.Count); Assert.AreEqual(5, data[0].Id); Assert.AreEqual(0, data[0].SQLiteValues.Count); Assert.AreEqual(0, data[0].Values.Count); Assert.AreEqual(1, StaticGetterSetterExpressionMethods.InstanceValues.Count); Assert.AreEqual(5, StaticGetterSetterExpressionMethods.InstanceValues.Keys.Single()); Assert.AreEqual(1, StaticGetterSetterExpressionMethods.InstanceValues[5].Count); Assert.AreEqual("Name", StaticGetterSetterExpressionMethods.InstanceValues[5].Keys.Single()); Assert.AreEqual("test_name", StaticGetterSetterExpressionMethods.InstanceValues[5]["Name"]); } }
public static void SetProperty(StaticGetterSetterExpressionMethods instance, string name, object value) { if (!InstanceValues.ContainsKey(instance.Id)) { InstanceValues.Add(instance.Id, new Dictionary <string, object>()); } InstanceValues[instance.Id][name] = value; }
public static object GetProperty(StaticGetterSetterExpressionMethods instance, string name, object defaultValue) { if (!InstanceValues.ContainsKey(instance.Id)) { return(defaultValue); } if (!InstanceValues[instance.Id].TryGetValue(name, out var value)) { value = defaultValue; } return(value); }