Reputation: 293
I need to retrieve an id's name (assessment name
)
public int GetAssessmentNo(int AssessmentNo)
{
int AssNo = (from a in contxt.View_Assessment
where a.id == AssessmentNo
select a.AssessmentName);
return AssNo;
}
Cannot implicitly convert type System.Linq.IQueryable' to int
Upvotes: 3
Views: 6058
Reputation: 5734
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
Upvotes: 1
Reputation: 81
var usersId = contxt.View_Assessment.Where(a=> a.Username == AssessmentName).Select(a => a.Id).FirstOrDefault();
This will result with an the user Id as an int .
var usersId = contxt.View_Assessment.Where(a=> a.Id == AssessmentNo).Select(a => a.Name).FirstOrDefault();
This will result with a user name as string .
Upvotes: 0
Reputation: 3626
Your code actually returns a list (which probably in your case contains one item). Compiler can not convert a IQueryable
into an int
. You can do something like this to resolve the issue,
public int GetAssessmentNo(int AssessmentNo)
{
return contxt.View_Assessment.First(a=> a.id == AssessmentNo).AssessmentName;
}
Upvotes: 0
Reputation: 6462
Your query returns a set of integers.
Use one of these: 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;
}
or:
public int GetAssessmentNo(int AssessmentNo)
{
int AssNo = contxt.View_Assessment.Single(a => a.id == AssessmentNo).AssessmentName;
return AssNo;
}
Upvotes: 6
Reputation: 3438
Linq defaultly returns group of things, linq doesn't know that your id is uniq.
(from a in contxt.View_Assessment where a.id == AssessmentNo select a.AssessmentName).First() or FirstOrDefault
.
if you want to receive default value if no proper item is found.
Upvotes: 1