2

これは非常に基本的な質問です。私は2つのテーブルを持っています

プロジェクト-ID、名前、TypeIDプロジェクトタイプ-ID、名前

MVCには、新しいプロジェクトを作成するためのコントローラーアクションがあります。プロジェクトを作成するときに、プロジェクトのタイプを割り当ててから、以下のようにビューに渡します。

//
        // GET: /Project/Create

        public ActionResult Create(string id= null)
        {

            ProjectType selprojtype = null;
            if (id != null)
            {
                selprojtype = db.ProjectTypes.Include("Projects").Single(p => p.Name == id);
          }

            Project project = new Project();
            project.ProjectType = selprojtype;
            //project.TypeID = selprojtype.ID;  -
            var model = new ProjectViewModel(project);
            PopulateDropDownLists(model);
            return View(model);
        } 

私の質問は、ProjectTypeオブジェクトのみを関連付けることです。

Project project = new Project();
 project.ProjectType = selprojtype;

プロジェクトのTypeIDはまだnullのままです。これを行わない限り

 project.TypeID = selprojtype.ID;

これを行うためのより良い方法はありますか?

4

2 に答える 2

1

この値はすでにクラスにあるためTypeID、クラスには保存しません。この値にアクセスする必要がある場合は、次のように実行できます。ProjectProjectType

project.ProjectType.ID

クラスから ID に直接アクセスする必要がある場合はProject、パススルー プロパティを作成できます。例えば

public class Project
{
    public ProjectType ProjectType { get; set; }
    public int TypeID
    {
        get { return ProjectType.ID; }
    }
}
于 2012-06-29T15:17:58.587 に答える
0

いいえ : )

ProjectViewModel() のコンストラクターに、渡された Project インスタンスから読み取らせ、project.ProjectType から読み取って ID を設定します。

于 2012-06-29T20:16:51.917 に答える