2009-10-03 4 views
0

저는 ADO.NET을 처음 접했을 때 약간 혼란스럽고 데이터 조작에 사용할 수있는 옵션 수가 적었습니다. 일반 ADO.NET, LINQ to SQL, Entity Framework가 있습니다.사용할 ADO.NET 메서드를 결정하는 방법은 무엇입니까?

지금은

가 어떻게 어떤을 사용하기로 결정 수 등, IRC를 클라이언트를 개발하고 ADO.NET (그리고 SQLite는 공급자) 네트워크, 서버, 즐겨 찾기 채널 등의 설정을 저장하기 위해 사용하고?

편집 : 편집해야 할 일은 GUI를 편집하고 관리하기 위해 "바인딩"설정을 언급해야한다는 것입니다. 예를 들어 왼쪽의 TreeView에 네트워크 및 설정이있는 설정 대화 상자와 오른쪽의 텍스트 상자에서 설정을 편집 할 수 있습니다.

답변

1

우선 Linq-to-SQL은 Microsoft SQL Server 전용이며, 따라서 귀하의 경우 해당 옵션이 즉시 창 밖으로 나옵니다.

다음으로 데이터 액세스가 얼마나 까다 롭고 얼마나 복잡한 지 결정해야합니다.

몇 가지 테이블을 다루고 있고 각 테이블에는 두 개의 열이 들어 있으며 몇 가지 정보를 읽고 쓰는 것이 필요하다면 표준을 사용하면 가장 좋습니다. ADO.NET (SQL 쿼리를 실행하는 ADO.NET 연결 및 명령 개체와 같은 항목). 이 시나리오에서는 관계형 모델 (데이터베이스의 행과 열)과 앱에있는 객체 사이의 모든 "변환"을 처리하는 것은 개발자의 몫입니다. 때때로 그럴싸한 비트와 반복적 인 코딩이 필요합니다 - 작동하지만 단순한 시나리오에서는 매우 쉽고 ADO.NET의 내부 동작을 이해할 수있는 최상의 토대를 제공합니다 (상당히 익숙한 경우).

ADO.NET Entity Framework와 Linq-to-Entities는 완전히 다른 짐승이며 꽤 복잡합니다. 매우 큰 응용 프로그램, 데이터베이스에 수십 또는 수백 개의 테이블을 가지고있을 때, 응용 프로그램에서 크고 가능한 복잡한 비즈니스 객체 모델이 있고 모든 종류의 백엔드 (SQL Server, Oracle, Postgres 등)를 지원해야 할 때 정말 빛납니다.). EF를 사용하면 디자이너에서 개체 (해당 속성이있는 "Customer"클래스)와 데이터베이스의 관계형 저장소 (열이있는 "Customers"테이블) 사이의 매핑을 정의 할 수 있으며 EF는 테이블과 도메인 객체 간의 매핑을 어렵게 만듭니다. 그러나 배울 점이 많습니다.

꽤 간단한 응용 프로그램을 사용하는 경우 로프에 대해 알아보고 작동 방식에 대한 느낌을 얻으려면 지금 당장 일반 ADO.NET을 사용하는 것이 좋습니다. 나는 EF 경로를가는 것이 당신의 경우에 문제와 학습 곡선의 가치가 있다고 생각하지 않습니다. 전혀 ADO 필요한 이유

마크

1

당신이하고있는 경량 작업을 위해서 LINQ를 SQLite 제공자와 함께 사용하면 내 생각에 훌륭한 적합성이 될 것입니다.

는 정교하게하려면, 당신은 매우 데이터 무거운 응용 프로그램을 수행한다면

, ADO.NET 유용성 대 성능을 위해 최선을 다 할 수있다.

그러나 여러 데이터 원본, 비즈니스 계층 유효성 검사 또는 감사 삽입에서 쿼리하는 것과 같은 고급 작업을 수행해야하는 경우 엔 Entity Framework이 최선의 방법 일 것입니다.

+0

LINQ는 엔티티 프레임 워크입니다. 왜 다른 옵션으로 구분 된 이유가 확실하지 않은 ... –

1

은 정말 이해가 안 돼요. .NET의 기본 설정 유지 프레임 워크를 사용하지 않는 이유는 무엇입니까? 이렇게하면 사용자 별 설정이 XML 파일로 자동 저장됩니다.

참조 : SQLite는 공급자 http://www.devx.com/dotnet/Article/33944

+0

데이터의 관계 특성 때문입니다. (네트워크에는 많은 채널이있는 많은 서버가 있습니다.) 문제가되지 않는다고 생각하지 않는 한? –

+0

그건 겨우 관계형 데이터입니다. 사전 설정과 목록을 설정에 잘 저장할 수 있습니다. 예를 들어, 네트워크를 서버 목록에 매핑하는 사전을 가질 수 있습니다. 서버 이름, 서버 주소, 설명, 포트 등이 포함 된 클래스가 될 수 있습니다. –

관련 문제