2010-08-17 5 views
0

ASP.NET 응용 프로그램에서 사용할 데이터베이스 모델이 포함 된 비즈니스 계층을 만들었습니다. 필자는 전에 Windows Forms에서 Linq To SQL 클래스를 사용했지만 요청 당 웹 응용 프로그램에서 ORM을 사용하는 것은 나에게 외국어입니다. 나는 이해할 수없는 몇 가지 사항을 알고 누군가가 내게 어떤 통찰력을 주어도 감사하겠습니다.ASP.NET 응용 프로그램의 Entity Framework 고려 사항

BLL은 GetRecord() 또는 UpdateRecord()와 같은 정적 메소드를 가지고 있습니다. 이 메소드들 각각은 작업 단위 후에 파기 된 새로운 ObjectContext 인스턴스를 생성합니다. HttpContext.Current.Items 캐시 구현이 없습니다.

저는 EF .NET 3.5를 사용하고 있습니다.

  1. 미리 생성 된보기 (Model.View.cs)를 생성하여이를 내 솔루션에 추가했습니다. 그것을 사용하려면이 모든 것이 필요한가? 또한 내 DLL과 함께 csdl, msl 및 ssdl 파일을 게시해야합니까?

  2. ASP.NET 응용 프로그램에 대한 쿼리를 사전 컴파일하는 것이 좋지 않습니까? 모든 ASPX 페이지에 대해 하나 또는 두 개의 쿼리 만 있고 같은 페이지에서 두 번 사용되는 쿼리는 매우 드뭅니다. 쿼리를 사전 컴파일하면 애플리케이션 속도가 느려 집니까? 세션 A로 만든 사전 컴파일이 세션 B에 유용할까요?

  3. 나는 ASP.NET 페이지에 레코드를 업데이트하려면 다음 방법을 만들었으며 그것을 할 수있는 좋은 방법입니다 궁금 :

    ASP.NET 레코드를 가져옵니다 (법인) BLL를 사용하여이. GetRecord()
    업데이트 레코드가

  4. 내가 '기록을 업데이트 할() context.ApplyPropertyChanges를 사용하여 존재하는 경우
    이 BLL.Update()
    BLL.Update() 검사 레코드를 업데이트 보냅니다 모든 값 빨간색 엔티티 프레임 워크 k 성능 차트가 있으며 각 차트에는 쿼리에 대한 첫 번째 실행과 두 번째 실행의 두 가지 통계가 있습니다. 단위 작업 유형의 디자인을 사용하기 때문에 내 쿼리에서 두 번째 실행을 볼 수 없습니까?

감사합니다.

답변

1
  1. 파일이나 리소스로 CSDL 등이 필요합니다. 사전 제작보기는 공연에 도움이되지만 EDMX를 어떤 형태로 포함 할 필요성을 해소하지는 않습니다.
  2. No.
  3. 괜찮습니다. 코드를 보지 않고 더 말하기가 어렵습니다.
  4. 다릅니다. This post should help.
+0

대단히 감사합니다. Craig. 내가 원한다면 몇 가지 사항을 정리하고 싶습니다. 1. 빌드 작업으로 내 프로젝트에 edmx가 있습니다 : EntityDeploy. 게시 할 때 여전히 내 DLL 옆에 csdl 등이 있어야합니까? 2. ASP.NET 응용 프로그램에 대한 사전 컴파일 쿼리가 나쁘지 않습니다. 프리 컴파일은 다른 동시 사용자 세션간에 아무런 효과가 없습니까? 전역 캐시가 없습니까? – dstr

+1

1. (a) 어셈블리와 함께 파일을 배포하거나 (b) 빌드 작업을 포함 된 리소스로 변경하고 [EF 연결 문자열을 일치하도록 변경] (http://blogs.teamb.com/craigstuntz/) 2010/08/13/38628 /) 2. 프리 컴파일은 현재 사용자에게 도움이되고 도움이됩니다. 범위는 컴파일 된 쿼리에 대한 참조를 저장할 때 범위를 선택하여 결정됩니다. –

관련 문제