2017-01-17 1 views
0

저는 Dapper ORM을위한 새로운 버젼입니다. Dapper로 비즈니스 로직을위한 클래스 라이브러리를 만들려고합니다. Dapper를 Nuget을 사용하여 클래스 라이브러리에 설치합니다. 그리고 Dapper (1.50.2)에 대한 참고 문헌에서 참조를 볼 수 있습니다. 이제 나는 "쿼리"에 액세스 할 수없는 다음 코드를 작성합니다.클래스 라이브러리에서 Dapper로 쿼리를 사용할 수 없습니다.

namespace ClassLibrary1 
{ 
    public class Class1 
    { 

    static IDbConnection db2 = new SqlConnection(ConfigurationManager.ConnectionStrings["SqlServerConnString"].ConnectionString); 
    public Class1() 
    { 
    } 
    public List<dynamic> GetRecords() 
    { 
     string query = "select * from contacts"; 
     return (List<dynamic>)db2.Query<dynamic>(query); 

    } 
    } 
} 

제발 도와주세요. 내가 뭘 잘못하고 있는지 말해주세요.

+1

위에'Dapper; '를 추가 했습니까? – Jcl

+1

@ Jcl, 오, 내 goddddd 어리석은 실수 .. 내가 만든 .. 당신은 슈퍼맨 .. 젠장 ... 내가 대답을 수락 할 수 있도록이 의견을 게시하십시오. –

답변

1

Dapper 네임 스페이스에 확장명을 포함해야합니다. 그냥 추가 :

using Dapper; 

+0

좋은 선택 매우 짧은 대답 :) 사용하여 –

1

그 외에도에서 파일의 상단에, 더 올바른 방법은

namespace ClassLibrary1 { 
    using Dapper; 

    public class Class1 { 
     private static readonly string connectionString = ConfigurationManager.ConnectionStrings["SqlServerConnString"].ConnectionString; 

     public Class1() {} 

     public List<dynamic> GetRecords() { 
      string query = "select * from contacts"; 
      using (var db = new SqlConnection(connectionString)) 
       return db.Query<dynamic>(query).AsList(); 
     } 
    } 
} 

이것은 SqlConnection 객체 폐기 처리하고 .AsList 방법에서 저장하는 클래스를 작성합니다 타입 캐스팅 IEnumerable<> ~ List<>.

+0

제대로 연결의 처분 –

+0

좋은 지적 .. 실제로, 나는 "사용"을 사용하려고합니다 ..하지만 typeCasting에 대한 귀하의 요점은 매우 유효합니다 .. 정말 감사드립니다 ..이 +1. –

+0

그냥 확인하고 싶다면 프레임 워크 4.5에 "AsList()"가 없으므로 "ToList"에 대해 이야기하고 있습니다. –

관련 문제