Yus*_*tme 8 ef-code-first nuget-package entity-framework-5
我收到此错误:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
Run Code Online (Sandbox Code Playgroud)
当我尝试使用Update-Database程序包管理器控制台中的命令更新数据库时.
如何在visual studio中将行写入输出窗口?
我试过了:
try
{
context.SaveChanges();
}
catch (System.Data.Entity.Validation.DbEntityValidationException e)
{
foreach (var eve in e.EntityValidationErrors)
{
System.Diagnostics.Debug.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
eve.Entry.Entity.GetType().Name, eve.Entry.State);
foreach (var ve in eve.ValidationErrors)
{
System.Diagnostics.Debug.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
ve.PropertyName, ve.ErrorMessage);
}
}
throw;
}
Run Code Online (Sandbox Code Playgroud)
但那没用.关于如何调试这个的任何其他建议?
Sla*_*uma 21
我不知道为什么写入VS输出窗口不起作用以及如何使其工作.但作为最后的手段,只需将错误写入文本文件,该文件应独立于您拥有的应用程序类型:
try
{
context.SaveChanges();
}
catch (System.Data.Entity.Validation.DbEntityValidationException e)
{
var outputLines = new List<string>();
foreach (var eve in e.EntityValidationErrors)
{
outputLines.Add(string.Format(
"{0}: Entity of type \"{1}\" in state \"{2}\" has the following validation errors:",
DateTime.Now, eve.Entry.Entity.GetType().Name, eve.Entry.State));
foreach (var ve in eve.ValidationErrors)
{
outputLines.Add(string.Format(
"- Property: \"{0}\", Error: \"{1}\"",
ve.PropertyName, ve.ErrorMessage));
}
}
//Write to file
System.IO.File.AppendAllLines(@"c:\temp\errors.txt", outputLines);
throw;
// Showing it on screen
throw new Exception( string.Join(",", outputLines.ToArray()));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20570 次 |
| 最近记录: |