public EntityProperty(PropertyInfo property) { Property = property.Name; IsNumeric = property.PropertyType.IsNumber(); Getter = GetterBuilder.Build(property); Setter = SetterBuilder.Build(property.DeclaringType, property); Comparer = ComparerBuilder.Build(property.DeclaringType, property); _isValueType = property.PropertyType.IsValueType; _isNullableType = property.PropertyType.IsNullableValueType(); IsSelectable = true; IsInsertable = true; IsUpdatable = true; if (_isNullableType) { SetNullable(); } else { DefaultValue = property.PropertyType.GetDefaultValue(); } var autoDetectedKeyName = AutodetectableKeyNames.Any(n => n.Equals(property.Name, StringComparison.InvariantCultureIgnoreCase)); if (autoDetectedKeyName) { SetKey(); } }
public void build_and_execute_a_mandatory_setter() { var builder = new SetterBuilder<SetterTarget>(); Action<IArguments, SetterTarget> func = builder.BuildMandatorySetter("Name"); var args = new StubArguments(); args.Set("Name", "Max"); var target = new SetterTarget(); func(args, target); target.Name.ShouldEqual("Max"); }
public void build_and_execute_a_mandatory_setter() { var builder = new SetterBuilder <SetterTarget>(); Action <IArguments, SetterTarget> func = builder.BuildMandatorySetter("Name"); var args = new StubArguments(); args.Set("Name", "Max"); var target = new SetterTarget(); func(args, target); target.Name.ShouldEqual("Max"); }
public void build_and_execute_an_optional_setter() { var builder = new SetterBuilder<SetterTarget>(); var func = builder.BuildOptionalSetter("Name"); var args = new StubArguments(); var target = new SetterTarget(); func(args, target); target.Name.ShouldBeNull(); args.Set("Name", "Max"); func(args, target); target.Name.ShouldEqual("Max"); }