我在两个简单的webapi方法上面临一个非常奇怪的问题:
我有很多用于从db中检索masterdata的方法。 它们都是类似的,它们都读取了具有相同结构的表格。
我真的不知道为什么这个方法有效:
[HttpGet]
//[Authorize]
[Route("offertsource/get")]
public IHttpActionResult api_MasterData_OffertSource_GET()
{
var res = new List<mdOffertSource>();
try
{
res = (from c in db.mdOffertSources.OrderBy(x => x.OffertSource)
select new mdOffertSource() { idOffertSource = c.idOffertSource, Code = c.Code, OffertSource = c.OffertSource }).ToList();
return Ok(res);
}
catch (Exception e)
{
return BadRequest(e.Message);
}
}
这并不起作用:
[HttpGet]
//[Authorize]
[Route("offertstatus/get")]
public IHttpActionResult api_MasterData_OffertStatus_GET()
{
var res = new List<mdOffertStatus>();
try
{
res = (from c in db.mdOffertStatus.OrderBy(x => x.intOrder).ThenBy(x => x.OffertStatus)
select new mdOffertStatus() { idOffertStatus = c.idOffertStatus, Code = c.Code, OffertStatus = c.OffertStatus }).ToList();
return Ok(res);
}
catch (Exception e)
{
return BadRequest(e.Message);
}
}
我有很多类似于第一个工作的方法,只有下面的第二个方法不起作用。
如果我测试它,我会收到此错误:
明确构建实体类型&#39; XionDB.mdOffertStatus&#39;在查询中是不允许的。
我已经尝试从dbml文件中删除表mdOffertStatus并再次添加但我面临同样的问题......
这很奇怪。
感谢支持
答案 0 :(得分:1)
您的OfferSources表不为空,是吗?这将导致Select不被调用,并避免在第二种方法中抛出错误。
(将此作为评论,但没有足够的分数。)
答案 1 :(得分:0)
我通过删除dbml文件并再次添加来解决了我的问题......
在我尝试删除并再次添加表 mdOffertStatus 但没有任何更改之前,删除dbml并再次添加它修复了问题。
可能是解决方案中有些混乱...... 感谢支持