我正在使用SubSonic3和SQL Server 2000。
我遇到方法“FirstOrDefault”的问题 - 它总是抛出一个异常=“第1行:不正确的语法在'('。”附近来自SubSonic.Linq dll
编辑(添加评论代码):
InventoryDAL = DAL project name (dll)
Inventort= Subsonic3 Gnerated classes
Name space WHWarehouses = gnerated object
Dim WareH = (From Wh In InventoryDAL.Inventort.WHWarehouses.All _
Where Wh.WarehouseID = 1 ).FirstOrDefault
答案 0 :(得分:0)
我不知道SubSonic,但是Hibernate有不同的SQL方言你可以告诉它使用,可能想看看是否有任何方法告诉它使用SQL 2000的方言
答案 1 :(得分:0)
这也是我遇到的一个问题,遗憾的是,生成TOP的代码是在SubSonic Dependency中生成的,无法在TT模板中更改。
在 TSqlFormatter 下的SubSonic源.cs类是一种方法
protected override Expression VisitSelect(SelectExpression select)
...
if (select.Take != null)
{
sb.Append("TOP (");
this.Visit(select.Take);
sb.Append(") ");
}
...
删除db.Append中的括号应解决SQL的问题,但我不确定这是否会破坏SQL Compact Edition等其他提供程序?
我在这里提出了它:SubSonic Bug with TOP keyword?之后我才读到你的查询。
希望这有帮助。