2012-11-15 4 views
1

나는 ASP.NET MVC (와 .NET에 일반적으로) 아주 새롭다. 일부 CRUD 기능을 사용하여 기본 웹 사이트를 작성하려고 시도하지만 EF 및 SimpleMembership에서 조금 벗어났습니다. 좋은 시작 정보를 찾는 데 몇 시간을 보냈지 만 MVC 4가 성숙한 콘텐츠 (내가 이해할 수있는 것)를 갖기에는 너무 새로운 것 같습니다.CakePHP 녀석에게서 ASP.NET MVC 4/SimpleMembership 질문

지금 질문하기!

작업 및 응용 프로그램과 같은 몇 가지 모델을 추가하려면 단일 모 놀리 식 파일에 모든 파일을 함께 묶어 두거나 각 모델을 자체 파일로 분리해야합니까?

얼마나 많은 DB 컨텍스트가 있어야합니까? 이게 보이겠습니까?

public class MyContext : DbContext 
{ 
    public DbSet<Job> Jobs { get; set; } 
    public DbSet<Application> Applications { get; set; } 
} 

사용자 컨텍스트 (SimpleMembership)는 모델 용 컨텍스트와 별도로 유지해야합니까?

작업에서 사용자 (예 : 포스터 및 테이커)로 여러 개의 '탐색 속성'(올바르게 사용 하시겠습니까?)을 갖고 싶다면 어떻게해야합니까? 내 모델과 UsersContext에 대한 컨텍스트 (들) (내가해야 가정으로 내가 틀렸다면, 날 수정) SimpleMembership를 사용하여 분리하고있어 경우 이전 질문에 관련

public class Job 
{ 
    public int JobId { get; set; } 

    public virtual User Poster { get; set; } 
    public virtual User Taker { get; set; } 
} 

, 수행하는 방법 컨텍스트 경계를 넘어서 참조를 만드는가?

이 질문에 답하면 정말로 벗어날 수 있습니다. 감사!

당신은해야

Job.cs

Application.cs

MyContext.cs :

+0

ASp.net MVc4는 mvc 3의 asp.net mvc 3와 거의 동일합니다. mvc 3의 99 %가 MVC 4입니다. 4. ASP에서 매우 선택 적이기 때문에 회원님의 자리에서 EF와 미리 정의 된 멤버쉽을 잊어 버릴 것입니다. 그물 세계. 예, 그들은 당신이 아주 빨리 앱을 올려 놓을 수 있도록 도와줍니다. 솔직히 나는 마이크로 옴 (micro-orm)이 php pdo 방식에 가까워 질수록 훨씬 쉽게 작업 할 수 있다고 생각한다. EF 나 다른 ORM은 drag'n'drop을 넘어선다면 배우기가 어렵습니다. – MikeSW

답변

1

각 클래스는 클래스의 이름과 일치하는 이름을 가진 자신의 CS 파일입니다 있어야한다 각 데이터베이스에 대해 하나의 DbContext. 따라서 이러한 모든 테이블을 동일한 데이터베이스에 저장하려면 하나의 DbContext가 필요합니다.

모든 참조 문맥에서 AFAIK는 지원하지 않습니다. int 외래 키 특성을 추가하고 [NotMapped] 속성을 사용하여 참조를 작성하고 각 데이터베이스와 별도로 두 개의 엔티티를 가져올 때 수동으로 지정하십시오. 나는. if(someJob.PosterKey == someUser.UserKey) { someJob.Poster = someUser }. 그래도 조금은 고통 스러울 것입니다.

편집 : 먼저해야 할 일은 AccountsModel 파일에서 UsersContext 클래스를 가져 와서 자체 파일로 만드는 것입니다. 보통 내 애플 리케이션 후 컨텍스트 이름을 지정합니다. 그래서 내 응용 프로그램이 Jobs Manager라고 불리는 경우, 컨텍스트 JobsManagerContext를 호출하여 JobsManagerContext.cs 파일에 저장합니다 (연결 문자열을 변경하여 내 db JobsManager로 지정). 모든 계정 모델 클래스를 모두 함께 생성 된 첫 번째 파일 의미로 남겨 둘 수 있습니다. 그러나 새 모델 클래스 각각에 대해 새 파일을 만듭니다.