无法将类型 DbSet<> 隐式转换为 IQueryable<>
Cannot implicitly convert type DbSet<> to IQueryable<>
我使用此文档在 ASP.NET WEB API 中创建了一个 oData。 OData in ASP.NET Web API。我的 EF 在另一个项目上,所以我只添加对我的 WEB API 项目的引用。创建我的端点后。
public class ItemController : ODataController
{
SAP_PORTALEntities db = new SAP_PORTALEntities();
private bool ItemExists(string key)
{
return db.sap_item.Any(s => s.ItemCode == key);
}
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
[EnableQuery]
public IQueryable<Item> Get()
{
return db.sap_item;
}
[EnableQuery]
public SingleResult<sap_item> Get([FromODataUri] string key)
{
var item = db.sap_item.Where(s => s.ItemCode == key);
IQueryable<sap_item> itemModel;
itemModel = item;
return SingleResult.Create(itemModel);
}
public async Task<IHttpActionResult> Post(sap_item item)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.sap_item.Add(item);
await db.SaveChangesAsync();
return Created(item);
}
}
此行出现错误:IQueryable Get()
Cannot implicitly convert type 'System.Data.Entity.DbSet<sap_dataaccess.sap_item>' to 'System.Linq.IQueryable<sap_portal.Models.Item>'. An explicit conversion exists
虽然 物品 是我的模型。
public class Item
{
public string ItemCode { get; set; }
public string Dscription { get; set; }
public string ItemGroup { get; set; }
public string InvItem { get; set; }
public string PurItem { get; set; }
public string SalItem { get; set; }
public string UOMGroup { get; set; }
public string Manufacturer { get; set; }
public string Active { get; set; }
public string PurUOM { get; set; }
public Nullable<decimal> QtyPurUOM { get; set; }
}
你可以尝试使用 linq AsQueryable
否则你只会 return DbSet<sap_dataaccess.sap_item>
将转换类型失败。
[EnableQuery]
public IQueryable<Item> Get()
{
return db.sap_item.AsQueryable();
}
我使用此文档在 ASP.NET WEB API 中创建了一个 oData。 OData in ASP.NET Web API。我的 EF 在另一个项目上,所以我只添加对我的 WEB API 项目的引用。创建我的端点后。
public class ItemController : ODataController
{
SAP_PORTALEntities db = new SAP_PORTALEntities();
private bool ItemExists(string key)
{
return db.sap_item.Any(s => s.ItemCode == key);
}
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
[EnableQuery]
public IQueryable<Item> Get()
{
return db.sap_item;
}
[EnableQuery]
public SingleResult<sap_item> Get([FromODataUri] string key)
{
var item = db.sap_item.Where(s => s.ItemCode == key);
IQueryable<sap_item> itemModel;
itemModel = item;
return SingleResult.Create(itemModel);
}
public async Task<IHttpActionResult> Post(sap_item item)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.sap_item.Add(item);
await db.SaveChangesAsync();
return Created(item);
}
}
此行出现错误:IQueryable Get()
Cannot implicitly convert type 'System.Data.Entity.DbSet<sap_dataaccess.sap_item>' to 'System.Linq.IQueryable<sap_portal.Models.Item>'. An explicit conversion exists
虽然 物品 是我的模型。
public class Item
{
public string ItemCode { get; set; }
public string Dscription { get; set; }
public string ItemGroup { get; set; }
public string InvItem { get; set; }
public string PurItem { get; set; }
public string SalItem { get; set; }
public string UOMGroup { get; set; }
public string Manufacturer { get; set; }
public string Active { get; set; }
public string PurUOM { get; set; }
public Nullable<decimal> QtyPurUOM { get; set; }
}
你可以尝试使用 linq AsQueryable
否则你只会 return DbSet<sap_dataaccess.sap_item>
将转换类型失败。
[EnableQuery]
public IQueryable<Item> Get()
{
return db.sap_item.AsQueryable();
}