0

私はMSのMVC4を初めて使用し、CRUDフロントエンドを構築する必要のあるデータベースを提供されました。すべてのテーブルには、[TableID、TableName、EffectiveDate]の形式の複合主キーがあります。データベースの設計を変更できません。データベースファーストの手法とC#ツール用のEF 5.x DbContextジェネレーターを使用してモデルを作成しましたが、生成されたモデルファイルには複合キーの注釈が含まれていません。これは、主キー= [DeptID、DeptName、EffDate]のDepartmentテーブルの例です。

//------------------------------------------------------------------------------
// <auto-generated>
//    This code was generated from a template.
//
//    Manual changes to this file may cause unexpected behavior in your application.
//    Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace BillableUnits4.Models
{
    using System;
    using System.Collections.Generic;

    public partial class Department
    {
        public int DeptID { get; set; }
        public string DeptName { get; set; }
        public System.DateTime EffDate { get; set; }
        public string Status { get; set; }
        public string Fund { get; set; }
        public string DeptNo { get; set; }
        public string RevenueAccount { get; set; }
        public string BalanceSheetAccount { get; set; }
    }
}

キーは次のようになっているはずです。

    [key] 
    public int DeptID { get; set; }
    [key]
    public string DeptName { get; set; }
    [key]
    public System.DateTime EffDate { get; set; }

主キーコンポーネントに注釈を付ける必要もありますか?もしそうなら、生成されたモデルファイルに注釈を追加する必要がありますか?(ファイルを再生成すると、明らかに私が手作業で行った変更はすべて消去されます)。適切な注釈付きのファイルを生成するようにMVC4/Visual Studioに指示する方法はありますか?

4

1 に答える 1

1

データベースにとって明らかな注釈を付ける必要はありません:)コードはデータベース固有の注釈を使用しないので、心配する必要はありません。

[Required]アプリのデータの一貫性に意味のある、またはその他のアノテーションを使用してモデルを装飾することをお勧めします。このような場合は、部分クラス(http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx)を使用するか、ViewModels(実際には変更してはならない自動生成されたクラスを気にせずに変更できます)

于 2013-01-14T22:44:13.213 に答える