2012-11-23 8 views
3

MVC3에서 모델을 만들고 싶지만 테이블에 대한 모델을 만드는 대신 내 데이터베이스에서 뷰에 대한 모델을 만들고 싶습니다. 나는 테이블을위한 모델을 가지고, 내가 모델을 만들 때 기본 키를 지정할 필요가 있다는 것을 알고있다. 그렇지 않다면 나는 어떤 에러 메시지를 얻는다. 뷰에는 기본/외래 키가 없으므로 View 용 모델을 만드는 방법은 무엇입니까?데이터베이스에 MVC3 모델보기

+1

어떤 DBMS를 사용하고 있습니까? EF를 사용하고 있습니까? –

+0

SQL 서버 관리 스튜디오. 예 EF를 사용하고 있습니다 – jpo

+0

DBMS == Sql Server 2005/2008/2012? –

답변

0

EF와 함께 작동하는 모든 MVC 응용 프로그램에서는 테이블을 만들지 않는 뷰에 대해 db 또는 개념적 모델로 테이블을 만드는 데 사용할 수있는 모델이 다를 수 있습니다. 테이블 생성은 정의 할 모델 클래스의 속성 DbContext에서 상속받은 클래스 이 클래스와 관계형 클래스에 존재하는 모든 속성은 db로 테이블을 생성합니다. 따라서보기에서만 사용되는 모델을 만들려면 상속 된 DbContext 클래스에서 다른 테이블 작성자 모델과 관계가없는 모델을 정의하고 정의를 정의 할 수 없습니다. 그런 다음이를 모델 또는 클래스로 사용하여 뷰에서 데이터를 표시 할 수 있습니다. 컨트롤러 및 관련 뷰는 동일한 모델을 사용해야하며 오류는 발생하지 않습니다.

public class datacontext : DbContext 
{ 
    public DbSet<Person> people { get; set;} 
    public DbSet<Address> address { get; set;} 
} 
public class Person 
{ 
    [Key] 
    public int ID { get; set;} 
    public String Name { get; set;} 
} 
public class Address 
{ 
    [Key] 
    public int ID { get; set;} 
    public Country country { get; set;} 
    public String Details { get; set;} 
} 
public class Country 
{ 
    [Key] 
    public int ID { get; set;} 
    public String Name { get; set;} 
} 
public class Work_Field//without any key definition 
{ 
    public String Title { get; set;} 
    public String Description { get; set;} 
} 

가 여기에 우리가이 테이블이 :이 예에서 (이 데이터 컨텍스트 클래스에 정의되지 않은 것하지만) 사람, 주소, 나라 을, 당신은 같은 일부 DataAnnotations [필수]와 아마보기 모델로 Work_Field을 사용할 수 있습니다 .. . 사용자가 강제로 매개 변수를 비우지 않게하십시오.