2013-03-07 5 views
0

MVC 프로그래밍에 익숙하지 않습니다. 정상 클래스에서 클래스를 사용하는 경우 데이터베이스에서 데이터를 initiliaze 및로드합니다. MVC에서는 모듈이 있는데 어떻게 레코드를로드합니까? 나는이 기록에 초기화하고 정보의 얻는 방법,MVC 모듈에서 초기화하는 방법은 무엇입니까?

[Table("UserAccount")] 
public class UserAccount { 
    [Key] 
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
    public int ID { get; set; } 
    public string userName { get; set; } 
    public string email { get; set; } 
    public int companyID { get; set; } 
} 

내가 이름을 "testuser를"가진 사용자를 가지고 말 :

여기 형 UserAcount 내 현재 코드는? 어떻게해야합니까?

UserAccount user = new UserAccount("tesetUser"); 

내가 어떻게 사용하나요?

user = user.SingleOrDefault(u => u.userName.ToLower() == User.Identity.Name.ToLower()); 

답변

1

Entity Framework에서 읽어야합니다. 이것은 MVC가 사용하는 기본 ORM입니다. 간단히 : 프로젝트의 컨텍스트가 아직없는 경우

  1. , 하나를 만들 :

    public class MyProjectContext : DbContext 
    { 
        public MyProjectContext() 
         : base("name=ConnectionStringNameHere") 
        { 
        } 
    } 
    
  2. 을 프로젝트 컨텍스트 모델을 추가

    public class MyProjectContext : DbContext 
    { 
        ... 
    
        public DbSet<SomeModel> SomeModels { get; set; } 
        public DbSet<SomeOtherModel> SomeOtherModels { get; set; } 
        # etc. 
    } 
    
  3. 업데이트하여 패키지 관리자 콘솔을 사용하여 데이터베이스 (TOOLS> 라이브러리 패키지 관리자> 패키지 관리자 콘솔) :

당신의 컨트롤러에서 컨텍스트를 사용하는 지금

(즉를 입력 한 후 Enter 키를 누르십시오) : 당신을 어떻게 정확하게

public class MyAwesomeController : Controller 
{ 
    private MyProjectContext db = new MyProjectContext(); 

    public ActionResult Index() 
    { 
     var someModels = db.SomeModels; 
     return View(someModels); 
    } 

    public ActionResult GetSomeModel(int id) 
    { 
     var someModel = db.SomeModels.Find(id); 
     return View(someModel); 
    } 

    # other actions 
} 
+0

이것은 크게 도움이 많이 감사합니다! – Bill

0

가장 간단한 경우 컨트롤러에서이 논리를 수행하여 데이터를보기로 전달해야합니다. 그러나 MVC는 UI 분리에 대한 것입니다. 따라서 이론적으로 컨트롤러에서 호출되는 도메인 계층에서이 작업을 수행해야합니다.

Here is a decent article from Jeff Atwood 그러나 컨트롤러가 응용 프로그램의 두뇌라고 동의하지 않습니다. 그것은 UI의 두뇌의 더 많은 것 ... 그러나 그것은 당신의 코드가 얼마나 복잡한 지에 달려 있습니다. 바보 같은 경우 도메인 계층을 만들지 마십시오.

0

MVC 모델에서 컨트롤러는 HTTP 요청 처리를 담당합니다.

일반적으로 컨트롤러 작업에서 엔티티 (예 : UserAccount)를로드합니다.

엔티티를 편집/업데이트하려는 경우 일반적으로 관련 필드를 UserAccount를 반영하는 모델로 매핑합니다. UI의 필요성은 종종 엔티티 모델의 필요성과 다소 다르기 때문에 별도의 모델이 제안됩니다. 각 관심사에 대해 별도의 클래스를 가짐으로써 뷰의 필요를 충족시키기 위해 엔티티 모델을 오염시키지 않아도됩니다.

+0

를 : "당신의 실체를로드 (예를 들어, UserAccount) 컨트롤러 동작 "특히 내 경우, UserAccount 모듈 – Bill

관련 문제