我一直在探索基於www.asp.net上的指南的WEB API,並且在嘗試過濾表中的列時遇到了問題。使用IQueryable select來過濾列
我的代碼很簡單:
// GET api/Admin
public IEnumerable<Product> GetProducts(testvar = "")
{
IQueryable<Product> productString = db.Products;
if (testvar != "")
{
productString = productString.ToList().Select(i => new Product
{
Name = i.Name
}).AsQueryable();
}
return productString;
}
所有我想要做的是檢索Product表的名稱列我JSON。然而,而不是越來越像:
[{"Name":"Hammer"}] or [{"$id":"1","Name":"Hammer"}]
我越來越:
[{"$id":"1","Id":0,"Name":"Hammer","Price":0.0,"ActualCost":0.0}]
的價格和ActualCost值通常16.99和20.00,但不是刪除它們,他們只是返回0 。同Id。
有沒有簡單的方法來阻止它返回Id,Price和ActualCost?也許我錯過了一件非常簡單的事情,但以下兩個鏈接是我找到可能工作的最接近的東西。
The entity cannot be constructed in a LINQ to Entities query
按照指導我一直在使用(http://www.asp.net/web-api/overview/creating-web-apis/using-web-api-with-entity-framework/using-web-api-with-entity-framework,-part-1)我在MVC 4項目合作與訂單,項目和訂單明細表。
感謝
如果你只是想返回名稱,爲什麼你不只是返回一個IEnumerable'? (我強烈懷疑你應該擺脫'ToList'和'AsQueryable'調用。) –
2013-04-27 17:49:00
剛剛玩過代碼。我只有ToList和AsQueryable,因爲它阻止了我發佈的其中一個SO鏈接發生的另一個錯誤。但是,我確實有一個返回字符串的遊戲,我似乎正在某處。這意味着我將不得不爲每個不同的請求過濾構建自己的字符串。我只是想象會有更簡單的方法。謝謝 – ASouthorn 2013-04-28 12:02:03