Exemplo n.º 1
0
        public string Reference(ForeignKey fk, ITextFormatter formatter)
        {
            var builder = new StringBuilder();

            builder.Append("\t\t\tManyToOne<" + formatter.FormatSingular(fk.UniquePropertyName) + ">(x => x." + formatter.FormatSingular(fk.UniquePropertyName) + ", map => { map.Column(\"" + fk.Name + "\"); });");
            return(builder.ToString());
        }
Exemplo n.º 2
0
        public string Bag(HasMany hasMany, ITextFormatter formatter)
        {
            var builder = new StringBuilder();

            builder.Append("\t\t\tBag<" + formatter.FormatSingular(hasMany.Reference) + ">(x => x." + formatter.FormatPlural(hasMany.Reference) + ", colmap =>  { colmap.Key(x => x.Column(\"" + hasMany.ReferenceColumn + "\"));  }, map => { map.OneToMany(x => x.Class(typeof(" + formatter.FormatSingular(hasMany.Reference) + "))); });");
            return(builder.ToString());
        }
        public string Reference(ForeignKey fk, ITextFormatter formatter)
        {
            var builder = new StringBuilder();

            if (fk.Columns.Count() == 1)
            {
                var mapList = new List <string>();
                mapList.Add("map.Column(\"" + fk.Columns.First().Name + "\")");

                // PropertyRef - Used with a FK that doesnt map to a primary key on referenced table.
                if (!string.IsNullOrEmpty(fk.Columns.First().ForeignKeyColumnName))
                {
                    mapList.Add("map.PropertyRef(\"" + formatter.FormatText(fk.Columns.First().ForeignKeyColumnName) + "\")");
                }
                if (fk.Columns.First().IsNullable)
                {
                    mapList.Add("map.NotNullable(true)");
                }
                mapList.Add("map.Cascade(Cascade.None)");
                builder.AppendLine(FormatCode("\t\t\tManyToOne", formatter.FormatSingular(fk.UniquePropertyName), mapList));
            }
            else
            {
                // Composite Foreign Key
                // eg ManyToOne(x => x.TesteHeader, map => map.Columns(new Action<IColumnMapper>[] { x => x.Name("HeadIdOne"), x => x.Name("HeadIdTwo") }));
                if (_language == Language.CSharp)
                {
                    builder.AppendFormat(
                        "\t\t\tManyToOne(x => x.{0}, map => map.Columns(new Action<IColumnMapper>[] {{ ",
                        formatter.FormatSingular(fk.UniquePropertyName));

                    var lastColumn = fk.Columns.Last();
                    foreach (var column in fk.Columns)
                    {
                        builder.AppendFormat("x => x.Name(\"{0}\")", column.Name);

                        var isLastColumn = lastColumn == column;
                        if (!isLastColumn)
                        {
                            builder.Append(", ");
                        }
                    }

                    builder.Append(" }));");
                }
                else if (_language == Language.VB)
                {
                    builder.AppendFormat(
                        "\t\t\tManyToOne(Function(x) x.{0}, Sub(map) map.Columns(new Action<IColumnMapper>[] {{",
                        formatter.FormatSingular(fk.UniquePropertyName));

                    var lastColumn = fk.Columns.Last();
                    foreach (var column in fk.Columns)
                    {
                        builder.AppendFormat("x.Name(\"{0}\")", column.Name);

                        var isLastColumn = lastColumn == column;
                        if (!isLastColumn)
                        {
                            builder.Append(", ");
                        }
                    }

                    builder.Append(" }))");
                }
            }
            return(builder.ToString());
        }
        public string Reference(ForeignKey fk, ITextFormatter formatter)
        {
            var builder = new StringBuilder();
            if (fk.Columns.Count() == 1)
            {
                var mapList = new List<string>();
                mapList.Add("map.Column(\"" + fk.Columns.First().Name + "\")");

                // PropertyRef - Used with a FK that doesnt map to a primary key on referenced table.
                if (!string.IsNullOrEmpty(fk.Columns.First().ForeignKeyColumnName))
                {
                    mapList.Add("map.PropertyRef(\"" + formatter.FormatText(fk.Columns.First().ForeignKeyColumnName) + "\")");
                }
                if (fk.Columns.First().IsNullable)
                {
                    mapList.Add("map.NotNullable(true)");
                }
                mapList.Add("map.Cascade(Cascade.None)");
                builder.AppendLine(FormatCode("\t\t\tManyToOne",formatter.FormatSingular(fk.UniquePropertyName),mapList));
            }
            else
            {
                // Composite Foreign Key
                // eg ManyToOne(x => x.TesteHeader, map => map.Columns(new Action<IColumnMapper>[] { x => x.Name("HeadIdOne"), x => x.Name("HeadIdTwo") }));
                if (_language == Language.CSharp)
                {
                    builder.AppendFormat(
                        "\t\t\tManyToOne(x => x.{0}, map => map.Columns(new Action<IColumnMapper>[] {{ ",
                        formatter.FormatSingular(fk.UniquePropertyName));

                    var lastColumn = fk.Columns.Last();
                    foreach (var column in fk.Columns)
                    {
                        builder.AppendFormat("x => x.Name(\"{0}\")", column.Name);

                        var isLastColumn = lastColumn == column;
                        if (!isLastColumn)
                        {
                            builder.Append(", ");
                        }
                    }

                    builder.Append(" }));");
                }
                else if (_language == Language.VB)
                {
                    builder.AppendFormat(
                        "\t\t\tManyToOne(Function(x) x.{0}, Sub(map) map.Columns(new Action<IColumnMapper>[] {{",
                        formatter.FormatSingular(fk.UniquePropertyName));

                    var lastColumn = fk.Columns.Last();
                    foreach (var column in fk.Columns)
                    {
                        builder.AppendFormat("x.Name(\"{0}\")", column.Name);

                        var isLastColumn = lastColumn == column;
                        if (!isLastColumn)
                        {
                            builder.Append(", ");
                        }
                    }

                    builder.Append(" }))");
                }
            }
            return builder.ToString();
        }