У меня есть следующие классы (я обрезал код):
public class SqlWeightTrackerRepository : IWeightTrackerRepository
{
private Table<WeightTracker> m_weightTrackerTable;
//... constructor + other code here
public IQueryable<WeightTracker> WeightTracker
{
get { return m_weightTrackerTable; }
}
}
// КОД, ВЫЯВЛЯЮЩИЙ ОШИБКУ
[ИГНОРИРОВАТЬ ЭТУ СТРОКУ ->] private IMembersRepository m_membersRepository = new SqlWeightTrackerRepository (); [Я УСТАЛО И ДОБАВИЛ ЕГО НЕПРАВИЛЬНО]
private IWeightTrackerRepository m_weightTrackerRepository = новый 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) {}
//ТРАССИРОВКИ СТЕКА
в System.Data.Linq.SqlClient.SqlProvider.Execute (запрос выражения, QueryInfo queryInfo, IObjectReaderFactory factory, Object [] parentArgs, Object [] userArgs, ICompiledSubQuery [] подзапросы, Object lastResult) в System.Data.Clider.Sqlient. .ExecuteAll (запрос выражения, QueryInfo [] queryInfos, IObjectReaderFactory factory, Object [] userArguments, ICompiledSubQuery [] подзапросы) в System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provideecuter.IProvider. в источнике System.Data.Linq.DataQuery1.System.Linq.IQueryProvider.Execute[S](Expression expression)
at System.Linq.Queryable.First[TSource](IQueryable
1) в WebUI.Controllers.MembersController.Welcome () в D: \ PROJECTS \ 3DData \ LoseOnlyToday \ WebUI \ Controllers \ MembersController.cs: строка 59 '
Этот код выдает исключение «Указанное приведение недопустимо».
Я точно знаю, что запрос работает - я использовал отладчик linq scott gu для его проверки - он возвращает 3 строки ... (DEBUGGER: http://weblogs.asp.net/scottgu/archive/2007/31июля/linq-to-sql-debug-visualizer.aspx)
Я в полном проигрыше ... часами искал в Google решение. Публикация этого - последнее средство. Может кто поможет? Буду очень признателен!