如何使用 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;
}
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;
}