login register Sysop! about ME  

2019년 05월 02일 10시 39분 00초,     조회수 : 318
  제목 : mvc join 후 null 처리 과정 또는 view 에서의 에러 해결책 자비좀
SEQ : 34666 글쓴이 : tmonster

작성 포맷 : TEXT 모드, 자동 줄바꿈 사용

Model
 
public class TableA
{
    [Key]
    public String Id {get; set;}
    public String Name {get; set;}
}
 
public class TableB
{
    [Key]
    public Int32 Id {get; set}
    public String Nick {get; set;}
}
 
public class AnBViewModels
{
    public TableA Aa {get; set;}
    public TableB Bb {get; set;}
}
 
--------------------------------------------------------------
controller
 
public ActionResult Test()
{
    var AnB = from A in Db.TableA
        join B in Db.TableB on A.Id equals B.Id.ToString() into B2
        from B3 in B2.DefaultIfEmpty(
            new TableB
            {
                Id = B2.FirstOrDefault() == null ? 0 : B2.FirstOrDefault().Id,
                Nick = B2.FirstOrDefault() == null ? "" : B2.FirstOrDefault().Nick
            }
        )
        select new AnBViewModels {
            Aa = A,
            Bb = B3
        };
 
    return View(AnB);
}

이러고 실행했습니다.



view에서 에러가 나타났습니다.

The entity or complex type '프로젝트명.DAL.TableB' cannot be constructed in a LINQ to Entities query


좀 다르게 사용해본 컨트롤러 구문(에러는 상동)

public ActionResult Test()
{
    var AnB = from A in Db.TableA
        join B in Db.TableB on A.Id equals B.Id.ToString() into B2
        from B3 in B2.DefaultIfEmpty()
        select new AnBViewModels {
            Aa = A,
            Bb = B3 != null ? B3 : new TableB
            {
                Id = 0,
                Nick = ""
            }
        };
 
    return View(AnB);
}


제가 원하는것은 TableA left join Table B 를 하는것입니다.
그러다보니 출력할때 이미 TableB가 널이라고 에러를 뿜더군요.
그래서 널일때 기본값을 지정하려고 했습니다.
기본값을 지정하는 할수있는 나름의 여러방법들을 대입해보아도..
view에서 에러가 납니다.
위에 에러코드가 그 코드 입니다.
여러 에러코드들과 접했지만 현재 저 위에 에러코드를 가장 많이 접한것 같네요.
해결책 제시 좀 부탁드리겠습니다.





제목 작성자 날짜 조회
mvc join 후 null 처리 과정 또는 view 에서의 에러 해결책 자비좀 tmonster 2019-05-02 318

 
 
.NET과 Java 동영상 기반의 교육사이트

로딩 중입니다...

서버 프레임워크 지원 : NeoDEEX
based on ASP.NET 3.5
Creative Commons License
{5}
{2} 읽음   :{3} ({4})