我的MS Sql数据库中有两个表,Course和StudyCase,带有一个到Course_ID的FK ID(课程表)(在StudyCase表中)。我正在尝试从课程ID中找到StudyCase ID。
在存储库中:
public IQueryable<StudyCase> ListStudyCases(long courseId)
{
return _dbContext.StudyCases.Where(c => c.Course_ID == courseId);
}
在StudyCases服务中:
public IQueryable<StudyCase> ListStudyCases(long courseId)
{
return this._StudyCaseRepository.ListStudyCases(courseId);
}
在StudyCases IServices中:
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
非常感谢您的帮助。
答案 0 :(得分:0)
只需使用您的动作参数而不将其转换为字符串。
public ActionResult Index(long courseId)
{
var id = _studyCaseSvc.ListStudyCases(courseId).First().ID;
StudyCase cases = _studyCaseSvc.GetStudyCase(id);
答案 1 :(得分:0)
您将id
声明为字符串,如果您想将其用作GetStudyCase
的参数,则需要long
。如果要传递字符串,则GetStudyCase
应该具有接受字符串的重载。
我是MVC的新手,但这似乎更像是一个普通的C#问题而不是与MVC有关的问题。