我正在使用Entity Framework和WebAPI2。使用EF我创建了一个Model并生成了Model以获取代码。当我在浏览器中调用GetAll方法时,我将获得整个数据结构(与其他实体的关系)。但我想只获得将在视图中显示的选定数据。
以下是GetAll的代码:
/* Entity: QR_Name */
/* propertys: Id, fname, lname, maxAge, groupId */
// GET: api/QR_Name
public IQueryable<QR_Name> GetAllNames()
{
return db.QR_Names;
}
当我想获得实体的一个对象时,我还有另一个问题。此代码在浏览器中不起作用。我得到了一个
错误讯息:
提供的主键值的数量必须与实体中定义的主键值的数量相匹配。
错误类型:
“ExceptionType”: “System.ArgumentException”
这是Get id:
的代码// GET: api/QR_Name/5
[ResponseType(typeof(QR_Name))]
public async Task<IHttpActionResult> GetNameById(int id)
{
QR_Name name = await db.QR_Names.FindAsync(id); //Here comes the exception
if (name == null)
{
return NotFound();
}
return Ok(name);
}