Esempio n. 1
0
        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"]);
                }
        }
Esempio n. 2
0
            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;
            }
Esempio n. 3
0
            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);
            }