Я использую оператор LINQ, который выбирает из различных таблиц информацию, необходимую мне для заполнения записей стиля Post/Post Comment. Я получаю забавное исключение, говоря, что объект должен реализовать IConvertible, когда я пытаюсь перебрать набор записей. Смешная часть этого заключается в том, что она возникает, только когда анонимный тип, который я использую для хранения данных, содержит более двух общих коллекций.
//select friend timeline posts posts
var pquery = from friend in fquery
join post in db.game_timeline on friend.id equals post.user_id
//join user in db.users on post.friend_id equals user.id into userGroup
//join game in db.games on post.game_id equals game.game_id into gameGroup
select new
{
Friend = friend,
Post = post,
Game = from game in db.games
where game.game_id == post.game_id
select game,
Recipient = from user in db.users
where user.id == post.user_id
select user,
Comments = from comment in db.timeline_comments
where comment.post_id == post.id
join users in db.users on comment.user_id equals users.id
select new { User = users, Comment = comment }
};
(Примечание. Я использую коннектор/сеть MYSQL, поэтому такие вещи, как Take и FirstOrDefault, и подобные вещи не поддерживаются в самих операторах LINQ, я решил использовать эти методы во время итерации, поскольку там не возникает исключение)
Проблема заключается в том, что все 3 поля (Игра, Получатель и Комментарии) присутствуют. Я получаю исключение "Объект должен реализовать IConvertible". НО, если я удалю ЛЮБОЕ одно из трех назначений полей (неважно, какой из них), он работает нормально. Кто-нибудь знает, что здесь происходит?
Спасибо заранее!
Райан.