2009-08-11 4 views
1

"指定されたキャストは有効ではありません" - >] プライベートIMembersRepository m_membersRepository =新しいSqlWeightTrackerRepository();プライベートIWeightTrackerRepository m_weightTrackerRepository =新しいSqlWeightTrackerRepositoryは()LINQのリポジトリパターンは、私は以下のクラスは、(私は、コードをトリミングしました)しているエラー

[私は疲れていた、誤ってこれを追加しました]。

// ... System.Data.Linq.SqlClient.SqlProvider.Execute(式クエリ、QueryInfo queryInfo、IObjectReaderFactory工場、オブジェクトのいくつかの他のコード

 if (report.PreviousWeightTrackerId == 0) 
      try { //If no session was found try find an entry in the database 
       var tmp = 
        (from x 
         in m_weightTrackerRepository.WeightTracker 
        where x.MemberId == report.Member.MemberId 
        orderby x.Created_On descending 
        select x).First(); 

      } catch (Exception e) {} 

//スタックトレース

[式のクエリ、QueryInfo []、QueryInfo []、IObjectReaderFactoryファクトリ、オブジェクト[] userArguments、ICompiledSubQuery []、System.Data.Linq.SqlClient.SqlProvider.ExecuteAllの にある[] parentArgs、Object [] userArgs、ICompiledSubQuery [] subQueries、Object lastResult)サブクエリー) (System.Data.Linq.SqlClient.SqlProvider.System.Dat) a.Linq.Provider.IProvider.Execute(式クエリ) at System.Data.Linq.DataQuery 1.System.Linq.IQueryProvider.Execute[S](Expression expression) at System.Linq.Queryable.First[TSource](IQueryable 1つのソース) WebUI.Controllers.MembersController.Welcome()in D:\ PROJECTS \ 3DData \ LoseOnlyToday \ WebUI \ Controllers \ MembersController.cs:ライン59'

このコードは、例外を与える 『指定されたキャストは有効ではありません』

私は、クエリが動作するという事実を知っている - 私はそれをチェックするためにスコット区のLINQデバッガを使用する - それは3を返します。行... (DEBUGGER:http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx

私は解決策のために時間を探していました。これを掲示するのが最後の手段です。 誰かを助けることができますか?最も高く評価されますか?

答えて

3

SqlWeightTrackerRepositoryはIWeightTrackerRepositoryを実装していますが、IMembersRepository(w/"IMembersRepository m_membersRepository")にキャストしようとしています。

変更:

private IMembersRepository m_membersRepository = new SqlWeightTrackerRepository(); 

には:

private IWeightTrackerRepository m_membersRepository = new SqlWeightTrackerRepository(); 

、あなたは黄金のだろう。

+0

返信いただきありがとうございます!私はそのようなノブのように感じます... – etangreal

+0

問題なし - 正解にフラグを立てて、他の人に利益をもたらすようにしてください。 –