1

ModelLeagueがあり、対応する SQL Server テーブルにはDateCreated、既定の SQL 値である を使用する列がありますgetdate()

new を追加するLeagueと、DateCreated列に値が書き込まれます。これは、EF が SQL関数nullを上書きした結果であると推測しています。getdate()新しい行を追加するときに EF がこの列を無視するようにする方法はありますか? ここに私の作成アクションがあります:

    [HttpPost]
    public ActionResult Create(LeagueCreateViewModel lcv)
    {
        League league = new League();
        league.Title = lcv.Title;
        league.SiteId = lcv.SiteId;

        if (ModelState.IsValid)
        {
            db.Leagues.Add(league);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        ViewBag.SiteId = new SelectList(db.Sites, "Id", "Title", league.SiteId);
        return View(lcv);
    }
4

1 に答える 1

1

EF 4.1 を使用している場合、それはサポートされていないため、それについて明示する必要があります。コードで注意してください。あなたがすることは、オブジェクトの部分クラスを作成し、オブジェクトのコンストラクターで「デフォルト設定」を行うことです。

public partial class League {
    public League() {
        DateCreated = DateTime.Now; 
        // or DateTime.UtcNow, depends on your logic
    }
}
于 2013-04-22T02:03:54.790 に答える