2009-03-05 5 views
1

전 고전 ASP 프로그래머이고 때로는 첫 번째 ASP.NET 응용 프로그램을 작성하는 PHP 프로그래머입니다. 많이 개선 된 ADO.NET 기능을 좋아하지만 데이터베이스 클래스를 작성할 필요가 있습니다. 부분적으로는 실제로 데이터베이스와 상호 작용하는 코드를 통합하고자하며 부분적으로는 반복되는 느낌을 줄이려합니다.매개 변수화 된 쿼리를 지원하는 데이터베이스 클래스를 작성하는 방법

단순한 데이터베이스 클래스는 어렵지 않지만 매개 변수화 된 쿼리를 보안 수단 중 하나로 사용하고 있습니다. 저는 이것을 수업에 통합하는 방법에 어려움을 겪고 있습니다. 테이블과 열 이름을 전달하여 데이터베이스의 열 데이터 형식을 반환하는 함수를 작성했지만 SQL 쿼리에서 테이블과 열 이름을 얻는 강력한 방법을 생각할 수 없습니다.

클래스에 대한 디자인은 선택을위한 Query() 함수와 삽입/업데이트/삭제를위한 Execute() 함수를 가졌습니다. (더 많은 공용 함수를 사용하는 것에 반대하지 않지만 자신보다 앞서고 싶지는 않습니다.) 두 함수 모두 SQL 문자열과 매개 변수에 대한 SortedList를 사용합니다. SQL. 자열에서 매개 변수 이름을 찾고 등호 앞을보고 열 이름을 얻는 것이 가능할 수 있습니다. 마찬가지로 한 번에 하나의 테이블에서만 작업하기 때문에 쿼리가 삽입, 업데이트 또는 삭제 일 때 테이블 이름을 얻는 것이 상당히 간단해야합니다. 하나 이상의 조인, 내부 선택 등이있을 수 있으므로 큰 관심사가 선택됩니다.

나는 잘못된 방향으로 가고 있습니까? 내가 그걸 생각하지 않는다면 내 인생을 더 쉽거나 어렵게 만들 수 있을까요? 어떤 조언을 해줄 수있는 어떤 언어로이 수업을 작성한 사람이 있습니까?

답변

5

바퀴를 재발 명하지 마십시오. ORM 요구 사항에 따라 nHibernate 또는 LINQToSQL (또는 LINQToEntities)을 찾으십시오.

+0

매개 변수화 된 쿼리를 지원하는 이전 ODBC API는 물론입니다. –

1

둘째, 특히 aspnet에 대한 첫 번째 진출 인 경우, 시도하고 테스트 한 휠을 찾는 것이 바람직 할 것입니다. 계속 바쁠 것입니다.

아마도 nHibernate보다 약간 가벼운 SubSonic에 대한 제안을 추가 하겠지만, 프로젝트의 성격에 달려 있습니다. 둘 다 훌륭한 도구이며, 지난 몇 년 동안 나에게 몇 달 동안의 작업을 저장 해줬습니다. .

0

"간단한 데이터베이스 클래스"는 클래스를 사용해야하는 클래스에서 너무 많은 세부 정보를 숨기는 것처럼 들립니다.

SqlCeEngine이 포함 된 클래스를 작성하고 "LookupDescription (String Code)"과 같은 메서드를 표시했습니다. 디자인의 종류는 사용자가 조사해야 할 대상이라고 생각합니다. 그리고 LINQ를 살펴보십시오. 그것은 제공해야 할 것이 많습니다.

1

저는 이것이 ASP.NET에서의 첫 경험이기 때문에 Linq를 SQL로 조사하는 것이 좋습니다. some tutorials을 수행하면 Linq 쿼리를 코딩하기 전에 어떻게 작동하는지 느낄 수 있습니다.

SQL Server를 사용하지 않거나 (현재 또는 미래에 다른 데이터베이스를 지원해야하는 경우) Linq를 SQL에 사용하지 않는 유일한 이유는 .NET 3.5 어떤 이유로 런타임.

행운을 빌어 요.

관련 문제