1

해당 ID로 호출 된 테이블에서 열 값을 반환하려고했습니다.입력 ID가있는 열 값을 반환하십시오.

public String PenTypes(int?id, Pen pen) 
    { 
    int num; 

     var query = from d in db.Pens 
        where d.ID == 1 
        select d.Type; 

     num=Convert.ToInt(query); 
     return num; 

어디서 잘못 될지 실마리가 없습니다. 나는 그것의 간단한 것을 알고 있지만 Entity Framework를 사용하는 것은 정말 새로운 것입니다. 어떤 도움을 주시면 감사하겠습니다.

var pen = db.Pens.FirstOrDefault(p => p.ID == id); 

현재 코드는 몇 가지 문제가 있습니다 :

var pen = db.Pens.Find(id); 
    if (pen == null) 
    // handle case when pen is not found 

    return pen.Type; // if type is string, then you possibly need to parse it 

또는 당신이 사용할 수있는 FirstOrDefault/SingleOrDefault :

답변

2

난 당신이 ID로 엔티티를 얻으려면 당신이 DbSet<TEntity>.Find 방법을 사용하는 것이 좋습니다

  • query의 유형은입니다.(여기서 T는 pen.Type 속성 유형 임). 이 값은 정수로 변환 할 수 없습니다
  • id 당신이 기본 키
  • 으로 검색 num이 정수의 경우, 다음 방법의 유형 int 대신
+0

string이어야한다 반환하는 경우 Null을 허용하지 않아야 다음 '유형 ''펜 '속성을'문자열 '값으로 설정할 수 없습니다. 이 속성을 'Decimal'유형의 null이 아닌 값으로 설정해야합니다. 어떻게 해결할 수 있습니까? – Mike

+0

@ user3272054 펜 클래스의 정의는 무엇입니까? –

+0

십진 유형 – Mike