1

我有一个 Model League,对应的 SQL Server 表有一个DateCreated使用默认 SQL 值的列getdate()

当我添加一个 newLeague时,该DateCreated列会写入一个null值,我猜这是 EF 覆盖 SQLgetdate()函数的结果。有没有办法让 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 回答