不能将类型“字符串”隐式转换为“长”
本文关键字:字符串 转换 不能 类型 | 更新日期: 2023-09-27 18:34:38
我的MS SQL数据库中有两个表,课程和StudyCase,有一个FK ID(课程表(要Course_ID(在StudyCase表中(。 我正在尝试从课程ID中查找学习案例ID。
在存储库中:
public IQueryable<StudyCase> ListStudyCases(long courseId)
{
return _dbContext.StudyCases.Where(c => c.Course_ID == courseId);
}
在研究案例服务中:
public IQueryable<StudyCase> ListStudyCases(long courseId)
{
return this._StudyCaseRepository.ListStudyCases(courseId);
}
在研究案例中:
IQueryable<StudyCase> ListStudyCases(long courseId);
从课程控制器发送操作:
return RedirectToAction("Index", "CourseCases", new { courseId = 6 });
在 StudyCase 控制器中:
public ActionResult Index(long courseId)
{
string id = "";
id = _studyCaseSvc.ListStudyCases(courseId).First().ID.ToString();
StudyCase cases = _studyCaseSvc.GetStudyCase(id);
...
我收到以下两个错误:
Cannot implicitly convert type 'string' to 'long'
和
The best overloaded method match for 'IStudyCaseService.GetStudyCase(long)' has some invalid arguments
感谢您的帮助。
只需使用您的操作参数而不将其转换为字符串。
public ActionResult Index(long courseId)
{
var id = _studyCaseSvc.ListStudyCases(courseId).First().ID;
StudyCase cases = _studyCaseSvc.GetStudyCase(id);
你把
id
声明为一个字符串,如果你想用它作为GetStudyCase
的参数,它需要是一个long
。 如果要传递字符串,则GetStudyCase
应该具有接受字符串的重载。
的新手,但这似乎更像是一个一般的C#问题,而不是与MVC特别相关的问题。