0

我的 MS Sql 数据库中有两个表,Course 和 StudyCase,FK ID(Course 表)到 Course_ID(在 StudyCase 表中)。我正在尝试从课程 ID 中找到 StudyCase 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);
    }

在 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

感谢您的帮助。

4

2 回答 2

0

只需使用您的操作参数而不将其转换为字符串。

public ActionResult Index(long courseId)
    {
        var id = _studyCaseSvc.ListStudyCases(courseId).First().ID;
        StudyCase cases = _studyCaseSvc.GetStudyCase(id);
于 2012-05-19T19:08:01.180 回答
0

您声明id为字符串,如果您想将其用作 的参数GetStudyCase,则它必须是long. 如果你想传递一个字符串,那么GetStudyCase应该有一个接受字符串的重载。

我是 MVC 的新手,但这似乎更像是一个通用的 C# 问题,而不是专门与 MVC 相关的问题。

于 2012-05-19T19:17:26.347 回答