0

好奇心で... システム側コントローラーの拡張につながる一時的な解決策を探しています。

ia mvc3.net かみそりベースのプロジェクトで、100 以上のクラス ファイルがあり、すべてのクラス ファイル (モデル) にはシステム フィールドがあります。

明確な

public string u_by { get; set; }
public System.DateTime u_date { get; set; }
public System.DateTime c_date { get; set; }
public string c_by { get; set; }
public int version { get; set;
public int groupid { get; set; }
public int status { get; set; }

現時点では、useraccess コントロールはまだ構築されていませんが、最終的には useraccess コントローラーがこの変数に入力する予定です。

フォームの挿入、更新、削除中に上記のすべての変数の値を修正する必要があります

クラスを作成してデフォルト値を設定できる場所はありますか? 私は作成しました

namespace webapp.Models
{
    public class sysfield
    {

        public string _updatedBy; 
        public string _createdBy;
        public DateTime _updatedDate;
        public DateTime _createdDate;
        public int _version;
        public int _groupid;
        public int _status;

        //Constructor
        public sysfield()
        {
            _updatedBy = HttpContext.Current.Server.MachineName.ToString();
            _createdBy = HttpContext.Current.Server.MachineName.ToString();
            _updatedDate = System.DateTime.Now;
            _createdDate = System.DateTime.Now;
            _version = updateVersion;
            _groupid = 100;
            _status = 1;
        }
        //Property 
        public int updateVersion
        {
            get 
            { 
                return _version; 
            }
            set 
            { 
                _version = _version + 1; 
            }
        }

        //Set Values
        public string createdBy(string initialCreator)
        {
            if (updateVersion == 1)
            {
                return _createdBy = initialCreator;
            }
            else
            {
                return _createdBy = HttpContext.Current.Server.MachineName.ToString();
            }
        }

        public DateTime createdDate(DateTime initialDate)
        {
            if (updateVersion == 1)
            {
                return _createdDate = initialDate;
            }
            else
            {
                return _createdDate = System.DateTime.Now;
            }
        }


    }
}

ここで問題は、モデルを挿入するときに、以下のコードでデフォルトを設定する方法です

namespace webapp.Models
{
    public partial class usr_myapp
    {
        public int VEHID { get; set; }
        public string CARNAME { get; set; }
        public string CATEGORY { get; set; }
        public string TYPE { get; set; }
        public string u_by { get; set; }
        public System.DateTime u_date { get; set; }
        public System.DateTime c_date { get; set; }
        public string c_by { get; set; }
        public int version { get; set; }
        public int groupid { get; set; }
        public int status { get; set; }
    }

}

コントローラを使用: ユーザーがシステム フィールド c_by、u_by などを除くすべてを入力する場所...

    // POST: /myapp/Create
    [HttpPost]
    public ActionResult Create(usr_myapp usr_myapp)
    {
        if (ModelState.IsValid)
        {
            db.usr_myapp.Add(usr_myapp);
            db.SaveChanges();  
        }

        return View(usr_myapp);
    }

デフォルトの方法

`
 public ActionResult Create(usr_myapp usr_myapp)
{
    if (ModelState.IsValid)
    {
        db.usr_myapp.Add(usr_myapp);
        db.SaveChanges();  
    }

    return View(usr_myapp);
}

`

usr_myapp の構成要素

    public int VEHID { get; set; }
    public string CARNAME { get; set; }
    public string CATEGORY { get; set; }
    public string TYPE { get; set; }
    public string u_by { get; set; }
    public System.DateTime u_date { get; set; }
    public System.DateTime c_date { get; set; }
    public string c_by { get; set; }
    public int version { get; set; }
    public int groupid { get; set; }
    public int status { get; set; }

部分クラス、edmx 世代から取得しましたが、すべて変更する必要がありますか?

不思議な世界で迷子になった男

4

1 に答える 1

0

コンストラクターでデフォルトを設定します。部分クラスにする必要がありますか?

于 2012-03-02T11:17:58.523 に答える