C# 返回类型为非动态的OrmLite Select
在这样一个简单的例子中C# 返回类型为非动态的OrmLite Select,c#,ormlite-servicestack,C#,ormlite Servicestack,在这样一个简单的例子中 var query = db.From<Employee>() .Join<Department>() .OrderBy(e => e.Id) .Select<Employee, Department>((employee, department) => new { employee.Id, employee.LastName, Departmen
var query = db.From<Employee>()
.Join<Department>()
.OrderBy(e => e.Id)
.Select<Employee, Department>((employee, department) => new {
employee.Id,
employee.LastName,
DepartmentName = department.Name
}
);
我是否可以显式编写我的.Select()
以返回EmployeeWithDept
var query = db.From<Employee>()
.Join<Department>()
.OrderBy(e => e.Id)
.Select<Employee, Department>((employee, department) => new EmployeeWithDept {
employee.Id,
employee.LastName,
DepartmentName = department.Name
}
);
var query=db.From()
.Join()
.OrderBy(e=>e.Id)
.选择((员工,部门)=>新员工WithDept{
employee.Id,
employee.LastName,
部门名称=部门名称
}
);
根据,是的。
只要遵循命名约定或使用正确的属性修饰类型,就很可能得到结果POCO
它应该简单到:
var query = db.From<Employee>()
.Join<Department>()
.OrderBy(e => e.Id);
var esWithDs = db.Select<EmployeeWithDept>(query);
var query=db.From()
.Join()
.OrderBy(e=>e.Id);
var esWithDs=db.Select(查询);
根据,是的。
只要遵循命名约定或使用正确的属性修饰类型,就很可能得到结果POCO
它应该简单到:
var query = db.From<Employee>()
.Join<Department>()
.OrderBy(e => e.Id);
var esWithDs = db.Select<EmployeeWithDept>(query);
var query=db.From()
.Join()
.OrderBy(e=>e.Id);
var esWithDs=db.Select(查询);
因为您正在调用db.From
返回的变量类型是SqlExpression
所以你可以这样称呼它:
var query = db.From<Employee>()
.Join<Department>()
.OrderBy(e => e.Id)
.Select<Employee, Department>((employee, department) => new {
Id = Sql.As(employee.Id, nameof(EmployeeWithDept.Id)),
LastName = Sql.As(employee.LastName, nameof(EmployeeWithDept.LastName)),
DepartmentName = Sql.As(department.Name, nameof(EmployeeWithDept.DepartmentName))
}
);
var result = db.Select<EmployeeWithDept>(query);
var query=db.From()
.Join()
.OrderBy(e=>e.Id)
.选择((员工、部门)=>新建{
Id=Sql.As(employee.Id,nameof(EmployeeWithDept.Id)),
LastName=Sql.As(employee.LastName,nameof(EmployeeWithDept.LastName)),
DepartmentName=Sql.As(department.Name,nameof(employeewithdepartment.DepartmentName))
}
);
var result=db.Select(查询);
这应该可以工作。因为您正在从调用
db。返回的变量类型是SqlExpression
所以你可以这样称呼它:
var query = db.From<Employee>()
.Join<Department>()
.OrderBy(e => e.Id)
.Select<Employee, Department>((employee, department) => new {
Id = Sql.As(employee.Id, nameof(EmployeeWithDept.Id)),
LastName = Sql.As(employee.LastName, nameof(EmployeeWithDept.LastName)),
DepartmentName = Sql.As(department.Name, nameof(EmployeeWithDept.DepartmentName))
}
);
var result = db.Select<EmployeeWithDept>(query);
var query=db.From()
.Join()
.OrderBy(e=>e.Id)
.选择((员工、部门)=>新建{
Id=Sql.As(employee.Id,nameof(EmployeeWithDept.Id)),
LastName=Sql.As(employee.LastName,nameof(EmployeeWithDept.LastName)),
DepartmentName=Sql.As(department.Name,nameof(employeewithdepartment.DepartmentName))
}
);
var result=db.Select(查询);
这应该行。不幸的是,我仍然需要查询。Select()
因为EmployeeWithDept
有一个属性部门名称
,在员工
或部门
上找不到该属性。这是部门。名称
请仔细查看我提供的文档链接。只有5段。OrmLite完全支持您所指的内容,只要您遵守约定。不幸的是,我仍然需要查询。选择()
,因为EmployeeWithDept
有一个属性DepartmentName
,在Employee
或Department
上找不到该属性。这是部门。名称
请仔细查看我提供的文档链接。只有5段。只要您遵守约定,OrmLite就完全支持您所指的内容。