public void BindSimpleValue(HbmManyToOne manyToOneMapping, string propertyPath, bool isNullable) { ColumnsBinder binder = new ColumnsBinder(value, Mappings); object[] columnsAndFormulas = manyToOneMapping.ColumnsAndFormulas.ToArray(); if (columnsAndFormulas.Length > 0) { this.AddColumnsAndOrFormulas(binder, columnsAndFormulas, isNullable); } else { // No formulas or columns, so add default column binder.Bind(new HbmColumn() { name = mappings.NamingStrategy.PropertyToColumnName(propertyPath), notnull = manyToOneMapping.notnull, notnullSpecified = manyToOneMapping.notnullSpecified, unique = manyToOneMapping.unique, uniqueSpecified = true, uniquekey = manyToOneMapping.uniquekey, index = manyToOneMapping.index }, isNullable); } }
private void BindManyToOne(HbmManyToOne manyToOneMapping, ManyToOne model, string defaultColumnName, bool isNullable) { new ValuePropertyBinder(model, Mappings).BindSimpleValue(manyToOneMapping, defaultColumnName, isNullable); InitOuterJoinFetchSetting(manyToOneMapping, model); InitLaziness(manyToOneMapping.Lazy, model, true); var ukName = !string.IsNullOrEmpty(manyToOneMapping.propertyref) ? manyToOneMapping.propertyref : null; if (ukName != null) model.ReferencedPropertyName = ukName; model.ReferencedEntityName = GetEntityName(manyToOneMapping, mappings); model.IsIgnoreNotFound = manyToOneMapping.NotFoundMode == HbmNotFoundMode.Ignore; if (ukName != null && !model.IsIgnoreNotFound) { AddManyToOneSecondPass(model); } if (manyToOneMapping.unique) { model.IsLogicalOneToOne = true; } BindForeignKey(manyToOneMapping.foreignkey, model); }
public void ManyToOne <TProperty>(Expression <Func <TComponent, TProperty> > property) where TProperty : class { var hbm = new HbmManyToOne { name = TypeUtils.DecodeMemberAccessExpression(property).Name, }; AddProperty(hbm); }
private static HbmColumn Column(this HbmManyToOne item) { if (item.Items == null || item.Items.IsEmpty()) { return(null); } return((HbmColumn)item.Items[0]); }
private void InitOuterJoinFetchSetting(HbmManyToOne manyToOneMapping, ManyToOne model) { FetchMode fetchStyle = !manyToOneMapping.fetchSpecified ? (!manyToOneMapping.outerjoinSpecified ? FetchMode.Default : GetFetchStyle(manyToOneMapping.outerjoin)) : GetFetchStyle(manyToOneMapping.fetch); model.FetchMode = fetchStyle; }
public static string GetUniqueIndex(this HbmManyToOne item) { if (item.index != null) { return(item.index); } return(item.Column().GetUniqueIndex()); }
public static string GetColumnName(this HbmManyToOne item) { if (item.column != null && !item.column.IsEmpty()) { return(item.column); } return(item.Column().name); }
public void AssignEntityName() { var hbmMapping = new HbmMapping(); var hbm = new HbmManyToOne(); IManyToOneMapper mapper = new ManyToOneMapper(null, hbm, hbmMapping); mapper.EntityName("MyEntity"); Assert.That(hbm.EntityName, Is.EqualTo("MyEntity")); }
public void WhenForceClassRelationToIncompatibleTypeThenThrows() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("TheOtherRelation"); var mapping = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, mapping, hbmMapping); Executing.This(() => mapper.Class(typeof(Whatever))).Should().Throw <ArgumentOutOfRangeException>(); }
public void AutoCleanUnsupportedCascadeStyle() { var hbmMapping = new HbmMapping(); var hbm = new HbmManyToOne(); var mapper = new ManyToOneMapper(null, hbm, hbmMapping); mapper.Cascade(Mapping.ByCode.Cascade.Persist | Mapping.ByCode.Cascade.DeleteOrphans | Mapping.ByCode.Cascade.Remove); hbm.cascade.Split(',').Select(w => w.Trim()).All(w => w.Satisfy(cascade => !cascade.Contains("orphan"))); }
public void ManyToOne(MemberInfo property, Action <IManyToOneMapper> mapping) { var hbm = new HbmManyToOne { name = property.Name }; mapping(new ManyToOneMapper(property, hbm, mapDoc)); AddProperty(hbm); }
public void AssignCascadeStyle() { var hbmMapping = new HbmMapping(); var hbm = new HbmManyToOne(); var mapper = new ManyToOneMapper(null, hbm, hbmMapping); mapper.Cascade(Mapping.ByCode.Cascade.Persist | Mapping.ByCode.Cascade.Remove); hbm.cascade.Split(',').Select(w => w.Trim()).Should().Contain("persist").And.Contain("delete"); }
public void ManyToOne <TProperty>(Expression <Func <TEntity, TProperty> > property) where TProperty : class { var memberInfo = TypeUtils.DecodeMemberAccessExpression(property); var hbm = new HbmManyToOne { name = memberInfo.Name }; AddProperty(hbm); }
public void CanSetInsert() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("Relation"); var hbm = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, hbm, hbmMapping); mapper.Insert(false); hbm.insert.Should().Be.False(); }
public void Should_get_null_given_null_index_and_Items_index() { HbmManyToOne manyToOne = new HbmManyToOne { Items = new object[] { new HbmColumn() } }; string result = manyToOne.GetUniqueIndex(); result.ShouldBeNull(); }
public void Should_get_null_if_sqltype_is_not_a_string_or_array_type() { HbmManyToOne manyToOne = new HbmManyToOne { column = "decimal" }; int?result = manyToOne.GetMaxLength(); result.ShouldBeNull(); }
public void CanSetUpdate() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("Relation"); var hbm = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, hbm, hbmMapping); mapper.Update(false); Assert.That(hbm.update, Is.False); }
public void CanSetAccessor() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("Relation"); var hbm = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, hbm, hbmMapping); mapper.Access(Accessor.ReadOnly); Assert.That(hbm.Access, Is.EqualTo("readonly")); }
public void CanSetAccessor() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("Relation"); var hbm = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, hbm, hbmMapping); mapper.Access(Accessor.ReadOnly); hbm.Access.Should().Be("readonly"); }
public void AfterSetMultiColumnsCantSetSimpleColumn() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("Relation"); var mapping = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, mapping, hbmMapping); mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)")); Executing.This(() => mapper.Column(cm => cm.Length(50))).Should().Throw <MappingException>(); }
public ManyToOneMapper(MemberInfo member, IAccessorPropertyMapper accessorPropertyMapper, HbmManyToOne manyToOne, HbmMapping mapDoc) { this.member = member; this.manyToOne = manyToOne; this.mapDoc = mapDoc; if (member == null) { this.manyToOne.access = "none"; } entityPropertyMapper = member == null ? new NoMemberPropertyMapper() : accessorPropertyMapper; }
public void Should_get_the_correct_value() { const string expected = "System.String"; HbmManyToOne manyToOne = new HbmManyToOne { @class = expected + ", mscorlib" }; string result = manyToOne.GetReturnType(); result.ShouldBeEqualTo(expected); }
public void Should_get_the_correct_value() { const string expected = "FirstName"; HbmManyToOne manyToOne = new HbmManyToOne { name = expected }; string result = manyToOne.GetPropertyName(); result.ShouldBeEqualTo(expected); }
public void Should_get_the_correct_value_from_column_if_not_null() { const string expected = "VARCHAR2"; HbmManyToOne manyToOne = new HbmManyToOne { column = expected }; string result = manyToOne.GetSqlType(); result.ShouldBeEqualTo(expected); }
public void Should_get__true__given_unique_is_true() { HbmManyToOne manyToOne = new HbmManyToOne { unique = true }; bool?result = manyToOne.IsUnique(); result.ShouldNotBeNull(); result.Value.ShouldBeTrue(); }
public void Should_get_null_given_valid_sqltype_and_null_length_in_Items() { HbmManyToOne manyToOne = new HbmManyToOne { column = "VARCHAR2", Items = new object[] { new HbmColumn() } }; int?result = manyToOne.GetMaxLength(); result.ShouldBeNull(); }
public void CanSetFormula() { var hbmMapping = new HbmMapping(); var member = ForClass <MyClass> .Property(c => c.Relation); var mapping = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, mapping, hbmMapping); mapper.Formula("SomeFormula"); mapping.formula.Should().Be("SomeFormula"); }
public void CanSetPropertyRefName() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("Relation"); var hbm = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, hbm, hbmMapping); mapper.PropertyRef("PropertyRefName"); hbm.propertyref.Should().Be("PropertyRefName"); }
public void WhenSetDefaultColumnNameThenDoesNotSetTheName() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("Relation"); var mapping = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, mapping, hbmMapping); mapper.Column(cm => cm.Name("Relation")); mapping.column.Should().Be.Null(); mapping.Columns.Should().Be.Empty(); }
public void CanSetNotFoundWithIgnoreMode() { var hbmMapping = new HbmMapping(); var member = typeof(MyClass).GetProperty("Relation"); var hbm = new HbmManyToOne(); var mapper = new ManyToOneMapper(member, hbm, hbmMapping); mapper.NotFound(NotFoundMode.Ignore); hbm.notfound.Should().Be(HbmNotFoundMode.Ignore); }