2011-04-24 5 views
2

오케이, C#과 asp.net에 대해 충분히 공부했으며 데이터베이스에서 생성 된 모든 커스텀 클래스가 어떻게 생성되었는지 알고 싶습니다. 예를 들면.커스텀 클래스는 데이터베이스와 어떤 연관이 있습니까?

내가 클래스 호출 직원

public class Employee 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public string EmailAddress { get; set; } 
} 

을하고 난 다음의 4 개 가지 분야로 데이터베이스가 : 그것은 사용자 정의 클래스처럼 보인다

ID 
Name 
EmailAddress 
PhoneNumber 

내 데이터베이스입니다. asp.net에서 나는 내 데이터베이스에서 LINQ to SQL 명령을 간단히 실행할 수 있으며 getter 및 setter를 사용하여 사용자 정의 클래스를 입력하지 않고도 클래스의 전체 스키마를 가져올 수 있습니다.

이제 직원 목록을 검색하기 위해 쿼리를 실행한다고 가정 해 보겠습니다. 내 응용 프로그램이 내 Employee 클래스에 내 데이터베이스에 매핑되는 방법을 알고 싶습니다.

답변

1

자체는입니다. 그러나 ORM 또는 유사 항목을 추가하면 가까워지기 시작합니다. 예를 들어 LINQ-to-SQL (Visual Studio로 작업하기가 쉽기 때문에 언급 했음)을 사용하는 경우 일반적으로 다음과 같이 사용하는 사용자 정의 "데이터 컨텍스트"클래스를 도구로 제공합니다.

using(var ctx = new MyDatabase()) { 
    foreach(var emp in ctx.Employees) { 
     .... 
    } 
} 

이것은 TSQL을 생성하고 데이터를 개체에 자동 매핑합니다.기본적으로 툴킷은 별도의 Employee 클래스를 생성하지만 부분 클래스를 통해이를 조정할 수 있습니다. 이것은 또한 삽입, 데이터 변경 및 삭제를 지원합니다.

기존 도메인 개체를 다시 사용할 수있는 도구도 있습니다. 두 방법 모두 성공적 일 수 있습니다 - 각각 장단점이 있습니다.

데이터를 읽기만하면 더 쉽습니다. dapper-dot-net과 같은 micro-ORM을 사용하면 지루한 materialization 코드를 처리하면서 쓰는 TSQL 형식을 사용할 수 있습니다.

0

ORM tool이 없으면 클래스를 데이터베이스에 직접 매핑 할 수 없습니다. ORM 도구는 구성을 읽고 매핑을 통해 클래스를 DB 행에 자동 매핑합니다.
즉, 행을 읽고 클래스 필드를 명시 적으로 설정할 필요는 없지만 매핑 파일을 제공하고 엔티티를로드하기 위해 ORM 프레임 워크를 거쳐야하며 프레임 워크가 나머지를 처리해야합니다.

nHibernate을 확인할 수 있으며 여기 nHibernate에 getting started이 있습니다.

0

귀하의 질문은 약간 모호합니다. 그러나 MVC (Model-View-Controller) 아키텍처의 모델을 참조하면됩니다.

직원 클래스 인 모델은 응용 프로그램의 데이터를 관리합니다. 따라서 데이터를 가져오고 설정할 수있을뿐만 아니라 데이터 변경을 알리는 데에도 사용할 수 있습니다. (보통보기로).

SQL을 사용하는 곳에서 언급 했으므로 데이터베이스에 저장하기 위해 테이블 ​​데이터의 연관 배열을 보내 전체 직원 레코드를 만들고 저장할 수 있습니다. 클래스에 대한 설정은 데이터를 INSERT하는 고유 한 SQL 구문을 처리합니다. 더 큰 MVC 프레임 워크에서. 응용 프로그램의 모델은 MS SQL 이외의 다른 유형의 백엔드에 적절한 저장을 처리하기 위해 몇 가지 다른 클래스를 상속합니다.

모델에는 일반적으로 레코드 찾기 및 레코드 업데이트를 처리하는 기능이 있습니다. 이는 일반적으로 검색 필드를 지정하여 ID를 포함하는 레코드를 리턴하며 레코드를 변경하기 위해이를 저장/갱신 함수로 기본 설정합니다. 모델의이 레벨에 묶어 저장할 데이터의 개정판을 만들 수도 있습니다.

따라서 모델이 SQL 구조와 어떻게 직접 연관되는지는 올바른 방식에 따라 다릅니다. 또는 어떤 프레임 워크를 사용할지 결정하십시오. asp.net에 대한 공통점은 Microsoft의 것입니다. ASP.Net MVC

+0

감사합니다. rtgibbons. ASP.NET MVC가하는 일은 PHP보다 훨씬 매끄럽고 매끄 럽습니다. – wchiching

관련 문제