我是在網絡表單中使用 EF6 的新手。我正在嘗試更新沒有 ID 的表中唯一可用的行,它只是應用程序的參數配置表。我在表單視圖上有這個更新方法。當我嘗試加載該項目時,它給了我錯誤。我認為我在這里做錯了,但不確定我需要做什么。我對linq一無所知。錯誤 11 無法將類型“System.Linq.IQueryable”隱式轉換為“InventarioCiclico.xInventarioConfigs”。存在顯式轉換(您是否缺少演員表?) C:\Users\A0H79224\Documents\Visual Studio 2013\Projects\InventarioCiclico\InventarioCiclico\Account\Admin\ConfigurarInventario.aspx.cs 73 20 InventarioCiclico // The id parameter name should match the DataKeyNames value set on the control public void fvInventarioConfigs_UpdateItem(xInventarioConfigs configs) { InventarioCiclico.xInventarioConfigs item = configs; InventarioCiclicoContext context = new InventarioCiclicoContext(); // Load the item here, e.g. item = MyDataLayer.Find(id); item = (from c in context.xInventarioConfigs select c).Take(1); if (item == null) { // The item wasn't found ModelState.AddModelError("", String.Format("Item with id was not found")); return; } TryUpdateModel(item); if (ModelState.IsValid) { context.SaveChanges(); // Save changes here, e.g. MyDataLayer.SaveChanges(); } }
2 回答

白豬掌柜的
TA貢獻1893條經驗 獲得超10個贊
即使您使用Take(1)僅選擇一條記錄, Take也會返回IQueryable。您可以使用類似這樣的快速修復:
item = (from c in context.xInventarioConfigs select c).Take(1).FirstOrDefault();
或者即使沒有 Take as FirstOrDefault 也會選擇一行。

侃侃爾雅
TA貢獻1801條經驗 獲得超16個贊
Take 返回一個 IQueryable,它可能只包含一個項目,但仍然是一個集合。如果您使用 Take(1) 僅選擇一條記錄,您不妨直接選擇 First(如果結果集中沒有記錄,請注意此處)或 FirstOrDefault
item = (from c in context.xInventarioConfigs select c).FirstOrDefault();
- 2 回答
- 0 關注
- 125 瀏覽
添加回答
舉報
0/150
提交
取消