Cri*_*jon 2 c# entity-relationship entity-framework visual-studio-2010
我正在尝试使用Entity Framework将实体插入到我的数据库中.见下文:
private void InsertarIntoDataBase()
{
Juego game = db.games.First(g => g.Id == anId);
Day d = new Day {
DayNumber = this.Number,
Game = game // This is a relationship. One Day has one game
};
db.AddToDay(d);
db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
这始终是插入,而不是更新.我第一次运行我的应用程序,它工作,之后它停止工作,抛出此异常An error occurred while updating the entries. See the InnerException for details..(我确信我没有改变任何事情).
为什么框架认为我正在更新?我错了什么?
SaveChangesSystem.Data.Entity.Infrastructure.DbUpdateException如果你的更新命令失败,它将抛出一个,它包装了一个System.Data.UpdateException最终包装的System.Data.SqlClient.SqlException.同样重要的是要注意,内部 - 内部异常可能不是SqlException取决于您正在使用的实体框架提供程序.
如果您打开这些内容,可以使用原始SqlError对象来提供有关更新问题的特定详细信息.
try
{
db.SaveChanges();
}
catch (DbUpdateException ex)
{
UpdateException updateException = (UpdateException)ex.InnerException;
SqlException sqlException = (SqlException)updateException.InnerException;
foreach (SqlError error in sqlException.Errors)
{
// TODO: Do something with your errors
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以通过捕获System.Data.Entity.Validation.DbEntityValidationException来获取大量功能和控制权,这将显示调用期间发生的任何验证错误SaveChanges.默认行为是验证保存时的更改.您还可以通过调用预先验证更改DbContext.GetValidationErrors().
| 归档时间: |
|
| 查看次数: |
24387 次 |
| 最近记录: |