0

저는 Entity Framework 6를 처음 사용했지만 소프트웨어의 다음 버전에 사용하고자합니다.EF6을 사용할 때 레이어가 혼동 됨

저는 현재 프로젝트에서 DAL과 BusinessLayer를 1 개의 프로젝트로 감싸는 Csla를 사용합니다.

EF는 Csla와 동일한 작업을 수행하고 하나의 프로젝트에서 DAL 및 비즈니스 계층을 생성합니까? 모든 자습서 온라인에서는 코드 첫 번째 접근 방식을 사용하고 이러한 객체를 MVC 웹 페이지에 직접 바인딩합니다.

데이터베이스 우선 접근 방식을 사용하면 상황이 달라 집니까? 이렇게하면 DAL 개체 만 생성되고 이러한 개체의 비즈니스 계층 버전을 작성해야합니까?

온라인으로 사람들이 모델을 별도의 프로젝트로 이동한다는 것을 읽었으므로 레이어간에 이러한 개체를 전달할 수 있습니다. 이 작업을 수행했다면 DAL 또는 비즈니스 계층에서 무엇을 가질 수 있습니까?

데이터베이스로 SQLServer를 사용하고 있음을 언급 할 것입니다. 나는 이것이 변할 것이라고 생각하지 않지만 절대로 결코 말하지 않는다.

답변

0

나는 Csla가 무엇인지 알지 못합니다. "EF는 Csla와 동일한 작업을 수행하고 하나의 프로젝트에서 DAL 및 비즈니스 계층을 생성합니까?"라는 의미가 무엇인지 알지 못합니다.

프로젝트를 레이어로 분리하는 측면에서 좋은 아이디어입니다.

데이터베이스 만들기 첫 번째 방법은 아무 것도 변경하지 않아야합니다. 사실 EF를 사용하지 않으면 아무 것도 변경하지 않아야합니다. Repository 패턴을 사용해야하기 때문에 : http://www.asp.net/mvc/tutorials/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

이동 모델 POCO를 별도의 프로젝트로 옮기는 것도 좋습니다. 왜? 동일한 서비스에 대해 서로 다른 프로젝트가 있다고 가정합니다. 1) ASP.NET 웹 응용 프로그램, 2) ASP.NET WebAPI, 3) WCF 서비스. 모두 같은 모델을 사용하는 경우 모델은 별도의 프로젝트 여야합니다. 최악의 상황을 대비하면 결코 후회하지 않을 것입니다.

리포지토리 패턴을 사용하는 경우 DAL은 리포지토리 패턴을 구현하는 프로젝트입니다.

비즈니스 계층에는 비즈니스 논리가 있습니다. 모델을 자체 프로젝트에 포함 시키면 비즈니스 계층에서 문제가되는 이유는 무엇이라고 생각하십니까?

+0

정말 dtos와 같은 모델입니까? 레이어간에 데이터를 전달하는 방법은 무엇입니까? UF 모델을 생성하기 위해 ef를 사용한다면, Dal 레이어로 정확히 무엇이 보입니까? 그냥 dbcontext 객체 (코드를 먼저 사용)? – Gillardo

+0

예, 모델은 응용 프로그램/서비스의 핵심 데이터를 전달하는 데 사용됩니다. 저장소 패턴을 사용하면 저장소 클래스가 DAL이됩니다. 그렇지 않으면 DbContext가 DAL입니다. – mostruash

+0

은 EF를 사용할 때 필요한 저장소 패턴입니까? 온라인으로 읽었을 때 어떤 사람들은 그것을 말하는 반면 다른 사람들은 dbcontext가 저장소라고 말합니다. 당신 의견은 뭐죠? – Gillardo