我需要检索一个id的名称(assessment name
)
public int GetAssessmentNo(int AssessmentNo)
{
int AssNo = (from a in contxt.View_Assessment
where a.id == AssessmentNo
select a.AssessmentName);
return AssNo;
}
无法将类型 System.Linq.IQueryable '隐式转换为 int
答案 0 :(得分:5)
您的查询返回一组整数。
使用以下方法之一:First(),Single(),FirstOrDefault(),SingleOrDefault()
public int GetAssessmentNo(int AssessmentNo)
{
int AssNo = (from a in contxt.View_Assessment
where a.id == AssessmentNo
select a).Single().AssessmentName;
return AssNo;
}
或:
public int GetAssessmentNo(int AssessmentNo)
{
int AssNo = contxt.View_Assessment.Single(a => a.id == AssessmentNo).AssessmentName;
return AssNo;
}
答案 1 :(得分:1)
Linq默认返回一组内容,linq不知道你的id是uniq。
(from a in contxt.View_Assessment where a.id == AssessmentNo select a.AssessmentName).First() or FirstOrDefault
。
如果您想在没有找到合适的项目时收到默认值。
答案 2 :(得分:1)
public string GetAssessmentNo(int AssessmentNo)
{
string AssNo = (from a in contxt.View_Assessment
where a.id == AssessmentNo
select a).Single().AssessmentName;
return AssNo;
}
If you write int Assno you cannot select AssessmentName because it is string datatype.you can change method datatype int to string after this you will get AssessmentName
Hope it will help you
答案 3 :(得分:0)
var usersId = contxt.View_Assessment.Where(a=> a.Username == AssessmentName).Select(a => a.Id).FirstOrDefault();
这将导致用户ID为int。
var usersId = contxt.View_Assessment.Where(a=> a.Id == AssessmentNo).Select(a => a.Name).FirstOrDefault();
这将导致用户名为字符串。
答案 4 :(得分:0)
您的代码实际返回一个列表(在您的情况下可能包含一个项目)。编译器无法将IQueryable
转换为int
。你可以做这样的事情来解决这个问题,
public int GetAssessmentNo(int AssessmentNo)
{
return contxt.View_Assessment.First(a=> a.id == AssessmentNo).AssessmentName;
}