gpt4 book ai didi

common-table-expression - PETAPOCO - 无效的对象名称

转载 作者:行者123 更新时间:2023-12-02 11:43:04 24 4
gpt4 key购买 nike

我将 CTE 与 PetaPOCO 结合使用并收到一个奇怪的错误
SQL Exception: Invalid Object Name PayTransactionForRollingVacationAverage引用数据应映射到的模型。

代码如下。

public IEnumerable<PayTransactionForRollingVacationAverage> GetPayTransactionForRollingVacationAverage(DateTime payEndingDate)
{
PointsNorth.PetaPoco.Sql sql = new PointsNorth.PetaPoco.Sql();
sql.Append(@"
;with HolidayWeeks as
(
Select Distinct EmployeeId, PayEndDate, 'Y' as HolidayWeek
from PayTransactions
where PayEndDate = @payEndingDate
and LaborCode in ('251', '249')
)", new { payEndingDate });

sql.Append(@"
Select
PT.EmployeeId,
PT.PayEndDate,
J.JobClass,
PayCodes.AverageRateCode,
PT.RegularHours,
PT.RegularRate,
PT.RegularAmount
from PayTransactions PT
Left Outer Join PayCodes on PayCodes.PayCodeCode = PT.LaborCode
Left Outer Join HolidayWeeks as H on H.PayEndDate = PT.PayEndDate and H.EmployeeId = PT.EmployeeId
Inner Join Jobs as J on J.JobId = PT.JobId
where PT.PayEndDate = @payEndingDate
and IsNull(H.HolidayWeek, 'N') <> 'Y'
order by PT.EmployeeId, PT.PayEndDate, J.JobClass", new { payEndingDate });

var data = Database.Query<PayTransactionForRollingVacationAverage>(sql);

return data;
}

模型非常简单:

public class PayTransactionForRollingVacationAverage
{
public long EmployeeId { get; set; }
public DateTime PayEndDate { get; set; }
public string JobClass { get; set; }
public string AverageRateCode { get; set; }
public decimal RegularHours { get; set; }
public decimal RegularRate { get; set; }
public decimal RegularAmount { get; set; }
}

我尝试分解 SQL 以确保它构建正确,但仍然收到错误。知道为什么会发生这种情况吗?

最佳答案

删除分号之前的空格。

根据 Alex Jorgenson 的链接,如果您将分号作为第一个字符,则可以修复此问题。根据我的测试,这严格是第一个字符,即如果分号之前有一些空格,自动生成的代码仍然会被吐出。

关于common-table-expression - PETAPOCO - 无效的对象名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16696342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com