我试图在一个名为ID的表中返回一个列值。
public String PenTypes(int?id, Pen pen)
{
int num;
var query = from d in db.Pens
where d.ID == 1
select d.Type;
num=Convert.ToInt(query);
return num;
我不知道我哪里出错了。我知道它很简单,但我真的很擅长使用Entity Framework。任何帮助将不胜感激。
答案 0 :(得分:2)
如果您想通过ID获取实体,建议您使用DbSet<TEntity>.Find
方法:
var pen = db.Pens.Find(id);
if (pen == null)
// handle case when pen is not found
return pen.Type; // if type is string, then you possibly need to parse it
或者您可以使用FirstOrDefault
/ SingleOrDefault
:
var pen = db.Pens.FirstOrDefault(p => p.ID == id);
您当前的代码有几个问题:
query
的类型为IQueryable<T>
(其中T是pen.Type属性的类型)。此值无法转换为整数id
不应为空
num
是整数,则方法的返回类型应为int
而不是string