如何使用 fastcrud 编写 sql 代码?

How to write sql code with fastcrud?

class是:

[Table("department_types", Schema = "public")]
public class DepartmentTypes


[Table("departments", Schema = "public")]
    public class Department

查询:

private string BuildQuery()
            {
                return OrmConfiguration.GetSqlBuilder<DepartmentViewModel>().Format(
                    $@" SELECT {nameof(Department.Id):C},
                                {nameof(Department.Name):C},
                                {nameof(Department.TypeId):C},
                                {nameof(DepartmentTypes.Name):C} as DepartmentTypeName
                        FROM {nameof(Department):T}
                        LEFT JOIN {nameof(DepartmentTypes):T}
                        ON {nameof(Department.TypeId):C} = {nameof(DepartmentTypes.Id):C}");
            }

结果class:

public class DepartmentViewModel
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public int TypeId { get; set; }

        public string DepartmentTypeName { get; set; }

    }

我想连接 Department 和 DepartmentTypes 并获得 DepartmentViewModel 结果...

现在而不是 {nameof(DepartmentTypes):T}(例如)系统输入 "DepartmentViewModel",而不是 DepartmentTypes 的名称:"department_types"

我找到了答案:D。

private string BuildDepartmentListQuery()
            {
                var departmentTypeTable = Sql.Table<DepartmentType>();
                var departmentTable = Sql.Table<Department>();

                var departmentColumnId = Sql.TableAndColumn<Department>(nameof(Department.Id));
                var departmentColumnName = Sql.TableAndColumn<Department>(nameof(Department.Name));
                var departmentColumnTypeId = Sql.TableAndColumn<Department>(nameof(Department.TypeId));
                var departmentColumnManagerId = Sql.TableAndColumn<Department>(nameof(Department.ManagerId));

                var departmentTypeColumnId = Sql.TableAndColumn<DepartmentType>(nameof(DepartmentType.Id));
                var departmentTypeColumnName = Sql.TableAndColumn<DepartmentType>(nameof(DepartmentType.Name));

                string sqlBuilderResult = OrmConfiguration.GetSqlBuilder<Department>()
                    .Format(
                        $@"SELECT
      {departmentColumnId}
    , {departmentColumnName}
    , {departmentColumnTypeId}
    , {departmentColumnManagerId}
    , {departmentTypeColumnName} as ""DepartmentTypeName""
    FROM {departmentTable}
    LEFT JOIN {departmentTypeTable}
    ON {departmentColumnTypeId} = {departmentTypeColumnId}");
                ;

                return sqlBuilderResult;
    }