public void TestDynamicColumnStoreStaticAccessors([IncludeDataSources(true, TestProvName.AllSQLite)] string context) { StaticGetterSetterMethods.InstanceValues.Clear(); var ms = new MappingSchema(); ms.GetFluentMappingBuilder() .Entity <StaticGetterSetterMethods>() .Property(x => Sql.Property <string>(x, "Name")); using (var db = GetDataContext(context, ms)) using (db.CreateLocalTable <DynamicColumnsTestFullTable>()) { var obj = new StaticGetterSetterMethods { Id = 5 }; StaticGetterSetterMethods.InstanceValues.Add(5, new Dictionary <string, object>()); StaticGetterSetterMethods.InstanceValues[5].Add("Name", "test_name"); db.Insert(obj); StaticGetterSetterMethods.InstanceValues.Clear(); var data = db.GetTable <StaticGetterSetterMethods>().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, StaticGetterSetterMethods.InstanceValues.Count); Assert.AreEqual(5, StaticGetterSetterMethods.InstanceValues.Keys.Single()); Assert.AreEqual(1, StaticGetterSetterMethods.InstanceValues[5].Count); Assert.AreEqual("Name", StaticGetterSetterMethods.InstanceValues[5].Keys.Single()); Assert.AreEqual("test_name", StaticGetterSetterMethods.InstanceValues[5]["Name"]); } }
private static void SetProperty(StaticGetterSetterMethods 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(StaticGetterSetterMethods 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); }