2016-10-27 6 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でEntity Frameworkにバックフィルします。

+0

はい、完全に機能します。ありがとう。 – GPGVM

関連する問題