0

我有一个模型类,它包含 5 个属性,但视图中只显示了 3 个属性。当我调用创建操作时,我只需要更新这 3 个!!

我正在尝试这个:

[HttpPost]
public ActionResult Create([Bind(Exclude = "Id")]Location location) 
{
     if (ModelState.IsValid) 
        {
            db.Location.Add(location);

            bool car_in_database = db.Car.Any(c => c.Id == location.Car.Id);
            if (car_in_database)
            {
                db.Entry(location.Car).State = EntityState.Modified;
                db.Entry(location.Car).Property(l => l.ClientId).IsModified = false;
            }

            db.SaveChanges();  

            return RedirectToAction("Index");
        }

但它不起作用..任何人都知道为什么或我必须做什么?

4

1 回答 1

0

只有 .NET 4.5 和 EF 5.0 支持取消将属性标记为未修改,因此如果您使用的是 .NET 4.0,则不得将实体状态设置为已修改。相反,您必须手动设置要修改的每个属性IsModified = true

于 2012-04-11T20:10:26.303 回答