ManyToOneMapping IManyToOneMappingProvider.GetManyToOneMapping() { var mapping = new ManyToOneMapping(attributes.Clone()) { ContainingEntityType = entity, Member = member }; mapping.Set(x => x.Name, Layer.Defaults, member.Name); mapping.Set(x => x.Class, Layer.Defaults, new TypeReference(typeof(TOther))); if (columns.Count == 0 && !mapping.IsSpecified("Formula")) { mapping.AddColumn(Layer.Defaults, CreateColumn(member.Name + "_id")); } foreach (var column in columns) { var columnMapping = CreateColumn(column); mapping.AddColumn(Layer.UserSupplied, columnMapping); } return(mapping); }
protected ManyToOneMapping reference_with_column(string column) { var reference = new ManyToOneMapping(); reference.AddColumn(Layer.Defaults, new ColumnMapping("propertyColumn")); return(reference); }
ManyToOneMapping IManyToOneMappingProvider.GetManyToOneMapping() { var mapping = new ManyToOneMapping(attributes.CloneInner()); mapping.ContainingEntityType = entity; mapping.Member = property; if (!mapping.IsSpecified("Name")) { mapping.Name = property.Name; } if (!mapping.IsSpecified("Class")) { mapping.SetDefaultValue(x => x.Class, new TypeReference(typeof(TOther))); } if (columns.Count == 0) { mapping.AddDefaultColumn(CreateColumn(property.Name + "_id")); } foreach (var column in columns) { var columnMapping = CreateColumn(column); mapping.AddColumn(columnMapping); } return(mapping); }
public void ShouldWriteColumns() { var mapping = new ManyToOneMapping(); mapping.AddColumn(new ColumnMapping()); writer.VerifyXml(mapping) .Element("column").Exists(); }
public void Column(string columnName) { var originalColumn = mapping.Columns.FirstOrDefault(); var column = originalColumn == null ? new ColumnMapping() : originalColumn.Clone(); column.Set(x => x.Name, Layer.Conventions, columnName); mapping.AddColumn(Layer.Conventions, column); }
public override void ProcessManyToOne(ManyToOneMapping thisSide) { if (thisSide.OtherSide == null) { return; } // other side is always going to be a collection for a many-to-one mapping var otherSide = (ICollectionMapping)thisSide.OtherSide; // both sides have user-defined key columns... leave alone! if (otherSide.Key.Columns.HasUserDefined() && thisSide.Columns.HasUserDefined()) { return; } if (otherSide.Key.Columns.HasUserDefined()) { // only other side has user-defined columns, so we'll bring them across to this side thisSide.ClearColumns(); otherSide.Key.Columns.Each(x => thisSide.AddColumn(x.Clone())); return; } if (otherSide.Key.Columns.HasUserDefined()) { // only other side has user-defined columns, so we'll bring them across to this side thisSide.ClearColumns(); otherSide.Key.Columns.Each(x => thisSide.AddColumn(x.Clone())); return; } // the other side doesn't have any user defined columns, so we'll use the ones from this side // whether they're user defined or not. otherSide.Key.ClearColumns(); thisSide.Columns.Each(x => otherSide.Key.AddColumn(x.Clone())); }
public void Column(string columnName) { if (mapping.Columns.UserDefined.Count() > 0) { return; } var originalColumn = mapping.Columns.FirstOrDefault(); var column = originalColumn == null ? new ColumnMapping() : originalColumn.Clone(); column.Name = columnName; mapping.ClearColumns(); mapping.AddColumn(column); }
private ManyToOneMapping CreateMapping(Member member) { var mapping = new ManyToOneMapping { Member = member }; mapping.Set(x => x.Name, Layer.Defaults, member.Name); mapping.Set(x => x.Class, Layer.Defaults, new TypeReference(member.PropertyType)); var columnMapping = new ColumnMapping(); columnMapping.Set(x => x.Name, Layer.Defaults, member.Name + "_id"); mapping.AddColumn(Layer.Defaults, columnMapping); SetDefaultAccess(member, mapping); return(mapping); }
protected virtual NaturalIdPart <T> Reference(Member member, string columnName) { var key = new ManyToOneMapping { Name = member.Name, Class = new TypeReference(member.PropertyType), ContainingEntityType = typeof(T) }; key.AddColumn(new ColumnMapping { Name = columnName }); manyToOnes.Add(key); return(this); }
/// <summary> /// Sets the column. /// </summary> /// <param name="manyToOneMapping">The many to one mapping.</param> /// <param name="columnName">Name of the column.</param> public static void Column(this ManyToOneMapping manyToOneMapping, string columnName) { if (manyToOneMapping.Columns.Any()) { return; } var originalColumn = manyToOneMapping.Columns.FirstOrDefault(); var column = originalColumn == null ? new ColumnMapping() : originalColumn.Clone(); var columnPart = new ColumnPart(column); columnPart.Name(columnName); manyToOneMapping.MakeColumnsEmpty(Layer.Defaults); manyToOneMapping.AddColumn(Layer.Defaults, column); // manyToOneMapping.AddColumn ( column ); }
protected virtual NaturalIdPart <T> Reference(Member member, string columnName) { var key = new ManyToOneMapping { ContainingEntityType = typeof(T) }; key.Set(x => x.Name, Layer.Defaults, member.Name); key.Set(x => x.Class, Layer.Defaults, new TypeReference(member.PropertyType)); var columnMapping = new ColumnMapping(); columnMapping.Set(x => x.Name, Layer.Defaults, columnName); key.AddColumn(Layer.Defaults, columnMapping); manyToOnes.Add(key); return(this); }
public void ColumnsCollectionHasSameCountAsMapping() { mapping.AddColumn(new ColumnMapping()); inspector.Columns.Count().ShouldEqual(1); }