数据库中有一个字段确实应该是布尔值,但由于某种原因,原始开发人员将其设置为CHAR,该字符将设置为“1”或“0 ”。实体框架ASP.NET MVC私有模型字段
[Column("CHARGEABLE")]
[StringLength(1)]
private string Chargeable { get; set; }
我希望我的模型来表示这个字段作为一个布尔值,所以我想我可以将属性添加到我的模型把它包起来:
[NotMapped]
public bool ChargeableTrue
{
get
{
return Chargeable == "1" ? true : false;
}
set
{
Chargeable = value ? "1" : "0";
}
}
现在在我查看我只是显示EditorFor( ChargeableTrue),但是当我点击保存时,它实际上并没有更新它。
我认为正在发生的事情是,当模型正在更新时,它仍然试图从视图中获取'Chargeable'的值,尽管我没有在那里显示它。由于没有输入字段,它只会变为空,并最终将其保存到数据库。
if (ModelState.IsValid)
{
db.Entry(call).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
在这种情况下预计会做什么?
这就是当你的域名不符合你想要的视图时所要做的。 +1 – kamranicus 2012-01-08 21:47:54
这就是我最终做的,现在我有更多的问题比我开始。 – NoPyGod 2012-01-09 04:02:34
如何“制作我的贴图”?你的意思是用视图模型中的字段手动更新模型对象的每个字段? – NoPyGod 2012-01-09 04:13:46