在执行以下查询时,我在InnerException中报错
{“'OFFSET'附近的语法不正确。
FETCH语句中选项NEXT的无效用法。
关键字“ AS”附近的语法不正确。
“ OFFSET”附近的语法不正确。
FETCH语句中选项NEXT的无效用法。
关键字“ AS”附近的语法不正确。
“ OFFSET”附近的语法不正确。
FETCH语句中选项NEXT的无效用法。
关键字“ AS”附近的语法不正确。“}
C#代码:
var db = new DigilibEntities();
List<title> titles = new List<title>();
titles = db.titles
.Include("themes")
.Include("subjects")
.Include("grades")
.Where(x => x.themes.Count() == 0 ||
x.subjects.Count() == 0 ||
x.grades.Count() == 0)
.OrderBy(x => x.id)
.Skip(10)
.Take(10)
.ToList();
最佳答案
默认情况下,EF将使用FETCH和OFFSET语法进行分页。在旧版本的SQL Server上不支持此语法。您需要将ProviderManifestToken
设置为2008,以便EF生成旧的2008样式语法。
A breaking change in Entity Framework 6.1.2 when using EDMX and SQL Server 2008/2005
关于c# - 跳过并获取在 Entity Framework 中生成异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43322641/