엔티티에 대한 이상한 LINQ 예외
저는 Post / Post Comment 스타일 레코드를 작성하기 위해 필요한 다양한 테이블 정보를 선택하는 LINQ 문을 사용하고 있습니다.레코드 세트를 반복하려고 하면 객체가 I 컨버터블을 구현해야 한다는 재미있는 예외가 발생합니다.재미있는 부분은 제가 데이터를 보유하기 위해 사용하고 있는 익명 타입이 2개 이상의 일반 컬렉션을 포함하고 있을 때만 발생하는 것 같습니다.
//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 Connector/Net을 사용하고 있으므로 Take 및 FirstOrDefault와 같은 것들은 LINQ 문 자체에서 지원되지 않지만, 예외가 발생하지 않기 때문에 반복하는 동안 이러한 메서드를 사용하도록 선택했습니다.)
문제는 3가지 필드(게임, 수신자, 댓글)가 모두 있을 때입니다."Object must employment I convertible" 예외가 발생합니다.그러나 세 가지 필드 과제 중 하나만 제거하면(어느 것이든 상관 없음), 잘 작동합니다.이게 무슨 일인지 아는 사람?
미리 감사드립니다!
라이언.
이는 추측이지만, 두 개 이상의 쿼리가 있을 때 익명 유형이 열거형으로 오리 입력을 시도하는 것일 수 있습니다.그런 경우 enum이 Iconvertible을 구현하고 익명 유형(현재 enum에서 파생됨)이 인터페이스를 구현하지 않기 때문에 Iconvertible을 구현하지 않는 것에 대한 불만이 제기됩니다.
언급URL : https://stackoverflow.com/questions/5903506/strange-linq-to-entities-exception
'programing' 카테고리의 다른 글
AJAX와 JQuery를 이용하여 JSON 데이터로 PUT 통화를 구현하는 방법은? (0) | 2023.10.06 |
---|---|
Char에 저장된 유니코드 (0) | 2023.10.06 |
jQuery $.ajax를 사용하여 서블릿에 요청 파라미터 배열을 보내는 방법? (0) | 2023.10.06 |
ng-model이 즉시 업데이트되지 않게 하는 방법은? (0) | 2023.10.06 |
Oracle "SQL 오류: 인덱스에서 IN 또는 OUT 매개 변수 누락:: 1" (0) | 2023.10.06 |