无法将数据添加到数据库 MVC 5 代码优先方法
Posted
技术标签:
【中文标题】无法将数据添加到数据库 MVC 5 代码优先方法【英文标题】:Unable to add data into database MVC 5 code first approach 【发布时间】:2015-10-21 12:21:05 【问题描述】:我正在使用实体框架 6 和代码优先方法。我有 3 个模型类 用户、国家和城市。我正在尝试将用户添加到数据库但无法执行此操作。 这是我的用户类。
public class User
public int userId get; set;
public int cityId get; set;
public String firstName get; set;
public String lastName get; set;
public String gender get; set;
public String email get; set;
public String password get; set;
public String photo get; set;
public DateTime joinDate get; set;
//public City city get; set;
//public Country country get; set;
public virtual City city get; set;
private String FullName
get return firstName + lastName;
控制器方法
[HttpPost]
public ActionResult Register(User user)
User reg = new User()
cityId = 2,
firstName = "U",
lastName = "v",
email = "u33@gmail.com",
password = "123",
gender = "Male",
photo = "asd",
;
try
db.Users.Add(reg);
db.SaveChanges();
// TODO: Add insert logic here
return View("Index","Home");
catch
return RedirectToAction("Index", "Home");
// return View("Register", user);
// return View("Register", user);
进入catch语句,不添加到数据库中。
捕捉错误
Exception:Thrown: "An error occurred while updating the entries. See the inner exception for details." (System.Data.Entity.Core.UpdateException)
A System.Data.Entity.Core.UpdateException was thrown: "An error occurred while updating the entries. See the inner exception for details."
Time: 10/21/2015 5:25:41 PM
Thread:Worker Thread[5576]
【问题讨论】:
Exception
抓到了什么?
异常:抛出:“更新条目时发生错误。有关详细信息,请参阅内部异常。” (System.Data.Entity.Core.UpdateException) 引发了 System.Data.Entity.Core.UpdateException:“更新条目时发生错误。有关详细信息,请参阅内部异常。”时间:10/21/2015 5:25:41 PM 线程:工作线程[5576]
内部异常怎么说..?
在哪里可以找到内部异常?
***.com/questions/6730859/…
【参考方案1】:
由于DateTime
是一种值类型,当您不想设置它时需要使用Nullable<DateTime>
(或DateTime?
),因为DateTime.MinValue
(DateTime 的默认值)不在范围内许多 Sql DB DateTime 字段的可接受值。
修复:
public class User
public int userId get; set;
public int cityId get; set;
public String firstName get; set;
public String lastName get; set;
public String gender get; set;
public String email get; set;
public String password get; set;
public String photo get; set;
public DateTime? joinDate get; set;
//public City city get; set;
//public Country country get; set;
public virtual City city get; set;
private String FullName
get return firstName + lastName;
第二种解决方案是在创建Person
时为joinDate
分配一个值
【讨论】:
以上是关于无法将数据添加到数据库 MVC 5 代码优先方法的主要内容,如果未能解决你的问题,请参考以下文章
将数据绑定到 ListBox 并将列表发布到数据库 mvc5
我的 MVC 5 代码优先数据库在哪里创建? (不使用 AttachDbFilename)