2017-05-04 31 views
3

我的兩個簡單的WebAPI方法面臨的一個很奇怪的問題:LinqToSql - 實體類型的顯式建築「{0}」的查詢是不允許

我有很多的方法被用於從retrive masterdata D b。 他們都是相似的,他們都讀相同結構的表。

我真的不知道爲什麼,例如這種方法可行:

這個作品

[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); 
    } 
} 

我有很多類似於第一個工作的方法,只有第二個下面的方法不起作用。

如果我測試了一下,我得到這個錯誤:

實體類型的顯式建築「XionDB.mdOffertStatus」查詢是不允許的。

我已經嘗試從dbml的文件中刪除該表mdOffertStatus並再次添加,但我面臨同樣的問題...

這是很奇怪的。

感謝支持

+0

我不這麼認爲......場景不同的是... – DarioN1

+1

@GiladGreen但實例中的第一個例子工程。 –

回答

0

我通過刪除文件DBML,並重新加入解決我的問題......

之前,我tryied刪除和再次添加表mdOffertStatus但沒有任何更改,刪除dbml並再次添加它解決了問題。

可能有一個在解決一些亂七八糟...... 謝謝支持

1

您的OfferSources表不是空的,是嗎?這會導致Select不被調用,並避免在第二個方法中拋出的錯誤。

(將離開這個作爲註釋,但沒有足夠的點數。)

相關問題