Esempio n. 1
0
        private void VisitEntity(Type entityType, string path, List <SelectedColumnModel> columns, List <JoinModel> joins)
        {
            foreach (var datacolumn in m_dataModel.GetTableDataColumns(entityType))
            {
                columns.Add(new SelectedColumnModel(path, m_dataModel.GetColumnName(datacolumn), null));
            }

            foreach (var reference in m_dataModel.GetReferences(entityType))
            {
                var propertyPath = $"{path}.{reference.LeftModelPropertyName}";
                if (!IsIncluded(propertyPath))
                {
                    continue;
                }

                var joinedTableAlias = DotPathHelper.Combine(path, reference.LeftModelPropertyName);

                var join = new JoinModel()
                {
                    JoinType         = JoinType.Left,
                    Condition        = $"[{path}].[{reference.LeftKeyColumnName}]=[{joinedTableAlias}].[{reference.RightKeyColumnName}]",
                    JoinedTableAlias = joinedTableAlias,
                    JoinedTableName  = m_dataModel.GetTableName(reference.RightEntityType)
                };

                joins.Add(join);

                VisitEntity(reference.RightEntityType, joinedTableAlias, columns, joins);
            }
        }
Esempio n. 2
0
 public void TestCombine(string a, string b, string exp)
 {
     Assert.Equal(exp, DotPathHelper.Combine(a, b));
 }