绑定排除Asp.net MVC不适用于LINQ实体

时间:2009-05-28 08:03:00

标签: asp.net-mvc linq binding

我目前正忙着花些时间研究ASP.NET MVC。我正在做的 教程Create a Movie Database in ASP.NET MVC,仍然使用ADO.NET Enity模型。我设法从LINQ实体模型创建一个列表视图。所以这是我的问题。 绑定属性不适用于我的SQL实体。

使用Ado.NET的原始代码

        public ActionResult Create([Bind(Exclude="Id")] Movie movieToCreate)

        {
             if (!ModelState.IsValid)
                return View(); 

            _db.AddToMovieSet(movieToCreate);
            _db.SaveChanges(); 
            return RedirectToAction("Index");
        } 

我的LINQ代码

    public ActionResult Create([Bind(Exclude = "Id")] Movies movieToCreate)
    {
        if (!ModelState.IsValid)
        {
            return View();
        }
        _db_linq.Movies.InsertOnSubmit(movieToCreate);
        _db_linq.SubmitChanges();

        return RedirectToAction("Index");
    }

但不排除Id字段。有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:7)

您的ID属性可能是一个int,它不是可以为空的类型。正因为如此,即使它在绑定时被排除,它也必须有一个值。在这种情况下,它具有其类型的默认值,即零。

确保正确设置数据库,将ID字段的IsIdentity属性设置为true并重新创建LINQ类。