Linq to sql “Linq存储库模式”;指定的强制转换无效";错误

Linq to sql “Linq存储库模式”;指定的强制转换无效";错误,linq-to-sql,Linq To Sql,我有以下类(我已经修剪了代码): //堆栈跟踪 在System.Data.Linq.SqlClient.SqlProvider.Execute(表达式查询、查询信息查询信息、IOObjectReaderFactory工厂、对象[]parentArgs、对象[]userArgs、ICompiledSubQuery[]子查询、对象lastResult) 位于System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(表达式查询、QueryInfo[]Query

我有以下类(我已经修剪了代码):

//堆栈跟踪

在System.Data.Linq.SqlClient.SqlProvider.Execute(表达式查询、查询信息查询信息、IOObjectReaderFactory工厂、对象[]parentArgs、对象[]userArgs、ICompiledSubQuery[]子查询、对象lastResult) 位于System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(表达式查询、QueryInfo[]QueryInfo、IOObjectReaderFactory工厂、Object[]userArguments、ICompiledSubQuery[]subQueries) 位于System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(表达式查询) 在System.Data.Linq.DataQuery
1.System.Linq.IQueryProvider.Execute[S](表达式)
在System.Linq.Queryable.First[TSource](IQueryable
1 source)处 位于D:\PROJECTS\3DData\LoseOnlyToday\WebUI\Controllers\MembersController.cs中的WebUI.Controllers.MembersController.Welcome():第59行

此代码给出一个异常“指定的强制转换无效”

我知道查询是有效的——我使用scott gu的linq调试器来检查它——它返回3行。。。 (调试器:)

我完全不知所措。。。几个小时以来,我一直在谷歌上寻找解决方案。这是最后的办法。
有人能帮忙吗?非常感谢

SqlWeightTrackerRepository实现了IWeightTrackerRepository,但您试图将其强制转换到IMembersRepository(w/“IMembersRepository m_membersRepository”)

更改:

private IMembersRepository m_membersRepository = new SqlWeightTrackerRepository();
致:


而且你将是金黄色的。

没问题-确保标记正确的答案,以便其他人能够受益。
        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) {}
private IMembersRepository m_membersRepository = new SqlWeightTrackerRepository();
private IWeightTrackerRepository m_membersRepository = new SqlWeightTrackerRepository();