我刚刚将我的API应用程序更新为ASP.Net Core 2.0以及EF Core。
以下查询以前的工作正常:
IList<myDTO> allRecords = _context.myModel
.Select(item => new myDTO()
{
recordId = item.myId,
recordName = item.myName
})
.OrderBy(o=>o.recordName)
.Skip(limit * (page - 1))
.Take(limit)
.ToList();
public class myModel
{
[Key]
public int myId { get; set; }
public string myName { get; set; }
}
public class myDTO
{
public int recordId { get; set; }
public string recordName { get; set; }
}
更新后我总是得到一个
System.Data.SqlClient.SqlException: 'Invalid column name 'recordName '.'
如果我删除了GrouBy
IList<myDTO> allRecords = _context.myModel
.Select(item => new myDTO()
{
recordId = item.myId,
recordName = item.myName
})
.Skip(limit * (page - 1))
.Take(limit)
.ToList();
或recordName字段
IList<myDTO> allRecords = _context.myModel
.Select(item => new myDTO()
{
recordId = item.myId
})
.OrderBy(o=>o.recordName)
.Skip(limit * (page - 1))
.Take(limit)
.ToList();
或Skip
IList<myDTO> allRecords = _context.myModel
.Select(item => new myDTO()
{
recordId = item.myId,
recordName = item.myName
})
.OrderBy(o=>o.recordName)
.Take(limit)
.ToList();
,它工作正常但我需要我的recordName字段并跳过并订购......
在迁移到Core 2.0之后,您是否有任何关于我为何会遇到此类错误的建议? Linq查询似乎完全没问题
西尔
答案 0 :(得分:0)
您可以首先在表格字段OrderBy
上使用myName
,然后执行select
。
IList<myDTO> allRecords = _context.myModel
.OrderBy(o => o.myName)
.Select(item => new myDTO()
{
recordId = item.myId,
recordName = item.myName
})
.Skip(limit * (page - 1))
.Take(limit)
.ToList();
检查这种方法是否有效。