PETAPOCO - 无效的对象名称
Posted
技术标签:
【中文标题】PETAPOCO - 无效的对象名称【英文标题】:PETAPOCO - Invalid object name 【发布时间】:2013-05-17 18:35:52 【问题描述】:我将 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 以确保它正确构建,但我仍然收到错误。知道为什么会这样吗?
【问题讨论】:
SQL 看起来不错 - 您在 SQL Server 上对吗? 你能接受我的回答吗?它帮助了我两次。 【参考方案1】:删除分号前的空格。
根据 Alex Jorgenson 的链接,如果您将分号作为第一个字符,则此问题已得到解决。 根据我的测试,这是严格意义上的第一个字符,即如果分号前还有一些空格,自动生成的代码仍然会被吐出。
【讨论】:
哈哈! 9个月后我又遇到了同样的问题,发现了这个,这就是解决方案。干得好,我! 4 年后,我发现自己又回到了这篇文章。我喜欢!【参考方案2】:这是 Peta Poco 的一个已知问题。它似乎在某些版本中已修复,但我不知道是哪一个。您可以在 https://github.com/toptensoftware/PetaPoco/issues/22
找到更多信息和解决此特定问题的方法【讨论】:
以上是关于PETAPOCO - 无效的对象名称的主要内容,如果未能解决你的问题,请参考以下文章
PetaPoco源代码学习--1.使用的Attribute介绍