0

MS SqlデータベースにCourseとStudyCaseの2つのテーブルがあり、FK ID(Courseテーブル)からCourse_ID(StudyCaseテーブル)があります。コースIDからStudyCaseIDを見つけようとしています。

リポジトリ内:

  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);
...

次の2つのエラーが発生します。

Cannot implicitly convert type 'string' to 'long'

The best overloaded method match for 'IStudyCaseService.GetStudyCase(long)' has some invalid arguments

あなたの助けをいただければ幸いです。

4

2 に答える 2

0

文字列に変換せずにaction引数を使用するだけです。

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を初めて使用しますが、これはMVCに特に関連するというよりも一般的なC#の質問のようです。

于 2012-05-19T19:17:26.347 に答える