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); }
public override void establish_context() { manyToOneARankedFirstToHolder = new ManyToOneMapping(); manyToOneARankedFirstToHolder.Set(x => x.Class, Layer.Defaults, new TypeReference(typeof(Holder))); manyToOneARankedFirstToHolder.Set(x => x.Name, Layer.Defaults, "ARankedFirstProperty"); manyToOneARankedFirstToHolder.ContainingEntityType = typeof(ARankedFirst); manyToOneARankedFirstToHolder.Member = new PropertyMember(typeof(ARankedFirst).GetProperty("ARankedFirstProperty")); manyToOneBRankedSecondToHolder = new ManyToOneMapping(); manyToOneBRankedSecondToHolder.Set(x => x.Class, Layer.Defaults, new TypeReference(typeof(Holder))); manyToOneBRankedSecondToHolder.Set(x => x.Name, Layer.Defaults, "BRankedSecondProperty"); manyToOneBRankedSecondToHolder.ContainingEntityType = typeof(BRankedSecond); manyToOneBRankedSecondToHolder.Member = new PropertyMember(typeof(BRankedSecond).GetProperty("BRankedSecondProperty")); var relationship = new OneToManyMapping(); relationship.Set(x => x.Class, Layer.Defaults, new TypeReference(typeof(BRankedSecond))); relationship.ContainingEntityType = typeof(Holder); collectionMappingToBRankedSecond = CollectionMapping.Bag(); collectionMappingToBRankedSecond.Set(x => x.ChildType, Layer.Defaults, typeof(BRankedSecond)); collectionMappingToBRankedSecond.Set(x => x.Name, Layer.Defaults, "ColectionOfBRankedSeconds"); collectionMappingToBRankedSecond.Set(x => x.Relationship, Layer.Defaults, relationship); collectionMappingToBRankedSecond.ContainingEntityType = typeof(Holder); visitor = new RelationshipPairingVisitor(A.Fake <PairBiDirectionalManyToManySidesDelegate>()); }
void SetDefaultAccess(Member member, ManyToOneMapping mapping) { var resolvedAccess = MemberAccessResolver.Resolve(member); if (resolvedAccess != Access.Property && resolvedAccess != Access.Unset) { // if it's a property or unset then we'll just let NH deal with it, otherwise // set the access to be whatever we determined it might be mapping.Set(x => x.Access, Layer.Defaults, resolvedAccess.ToString()); } if (member.IsProperty && !member.CanWrite) { mapping.Set(x => x.Access, Layer.Defaults, cfg.GetAccessStrategyForReadOnlyProperty(member).ToString()); } }
public static void ForeignKey(this ManyToOneMapping manyToOneMapping, string foreignKeyName) { if (!manyToOneMapping.IsSpecified("ForeignKey")) { manyToOneMapping.Set <string>(c => c.ForeignKey, 1, foreignKeyName); } }
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); }
public void CanAddReference() { var reference = new ManyToOneMapping(); reference.Set(x => x.Name, Layer.Defaults, "parent"); mapping.AddReference(reference); mapping.References.ShouldContain(reference); }
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 ShouldWriteProxyLazyAttribute() { var mapping = new ManyToOneMapping(); mapping.Set(x => x.Lazy, Layer.Defaults, Laziness.Proxy.ToString()); writer.VerifyXml(mapping) .HasAttribute("lazy", "proxy"); }
/// <summary> /// Sets the Foreign Key. /// </summary> /// <param name="manyToOneMapping">The many to one mapping.</param> /// <param name="foreignKeyName">Name of the foreign key.</param> public static void ForeignKey(this ManyToOneMapping manyToOneMapping, string foreignKeyName) { if (!manyToOneMapping.IsSpecified("ForeignKey")) { manyToOneMapping.Set(x => x.ForeignKey, Layer.Defaults, foreignKeyName); //var columnPart = new ManyToOnePart(column); //columnPart. (indexName); // manyToOneMapping.ForeignKey = foreignKeyName; } }
public new void Formula(string formula) { mapping.Set(x => x.Formula, Layer.Conventions, formula); mapping.MakeColumnsEmpty(Layer.UserSupplied); }