2016-10-27 2 views
0

여러 가지 다른 양식에 대한 공통 속성이있는 기본 모델이 있습니다.MVC 기본 모델 속성은 새 레코드 만들기에 대한 기본값을 설정합니다.

public class BaseForm 
{ 
    public int Id { get; set; } 
    public int SubId { get; set; } 
    ...several more common properties... 
} 

개인 양식에 대한 구체적인 모델이 있습니다. 이러한 모델을 업데이트 할 때 BaseForm.Id 및 BaseForm.SubId는 기존 레코드에 의해 채워집니다로

public class InfoForm : BaseForm 
{ 
    public string Information { get; set; } 
    public string Commands { get; set; } 
} 

public class WhatForm: BaseForm 
{ 
    public string WhatHappens { get; set; } 
    public string Behavior { get; set; } 
} 

이제 모든 것이 잘 작동합니다.

새 레코드를 만들 때 저의 지식 부족이 있습니다. BaseForm.Id 및 BaseForm.SubId는 예측 가능하지만 각 양식마다 다릅니다. 나는이해야하는 경우

InfoForm 위해 그들은

Record one.. 
BaseForm.Id = 1 
BaseForm.SubId = 1 

Record two.. 
BaseForm.Id = 2 
BaseForm.SubId = 1 

Record three.. 
BaseForm.Id = 3 
BaseForm.SubId = 1 

//Since Id is auto increment I assume it can be left blank for db 

될 것이며 WhatForm 그들은

Record one.. 
BaseForm.Id = 1 
BaseForm.SubId = 2 

Record two.. 
BaseForm.Id = 2 
BaseForm.SubId = 2 

Record three.. 
BaseForm.Id = 3 
BaseForm.SubId = 2 

//Since Id is auto increment I assume it can be left blank for db 

내가 단일 컨트롤러 액션과 모든 형태의 점을 목표로 한 것입니다 만 id와 subid에 특정한 값을 설정하는 다른 컨트롤러 액션.

내 질문에 이러한 값을 미리 채우는 방법이 있습니까? 아니면 컨트롤러 작업에서 수행해야합니까?

public class InfoForm : BaseForm 
{ 
    public InfoForm() 
    { 
     SubId = 1; 
    } 

    ... 
} 

그리고, Id와 그래, 당신이해야하지 엉망 :

답변

1

는 그냥 서브 클래스의 생성자를 사용합니다. Entity Framework는 저장 후 데이터베이스의 자동 ID로이를 다시 채 웁니다.

+0

예, 완벽하게 작동합니다. 감사. – GPGVM

관련 문제