asp.net-mvc - 错误:“在 dbcontext 中引发了 'System.StackOverflowException' 类型的异常”
问题描述
我在 Mvc 中使用 EF
我有这样的 DbContext 类。
public class MyContext : IdentityDbContext<ApplicationUser, CustomRole, string, IdentityUserLogin, CustomUserRole, IdentityUserClaim>
{
public MyContext ()
: base("MyContextConection")
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Configuration>());
}
public DbSet<TicketReply> TicketReplys { get; set; }
public DbSet<Ticket> Tickets { get; set; }
}
我覆盖SaveChangesAsync
public override async Task<int> SaveChangesAsync(CancellationToken cancellationToken)
{
int result = 0;
//SuperBaseModel entity = null;
try
{
var entities = ChangeTracker.Entries().Where(x =>
x.Entity is SuperBaseModel &&
(x.State == EntityState.Added || x.State == EntityState.Modified)).ToList();
if (entities.Any())
{
var currentUserId =
Guid.Parse(Thread.CurrentPrincipal.Identity.GetUserId() ?? Guid.Empty.ToString());
foreach (var entity in entities)
{
if (entity.State == EntityState.Added)
{
((SuperBaseModel)entity.Entity).CreatedDateTime = DateTime.Now;
((SuperBaseModel)entity.Entity).ModifiedDateTime = DateTime.Now;
((SuperBaseModel)entity.Entity).CreatedUserId = currentUserId;
((SuperBaseModel)entity.Entity).ModifiedUserId = currentUserId;
}
else
{
((SuperBaseModel)entity.Entity).ModifiedDateTime = DateTime.Now;
((SuperBaseModel)entity.Entity).ModifiedUserId = currentUserId;
entity.Property("CreatedDateTime").IsModified = false;
entity.Property("CreatedUserId").IsModified = false;
}
}
}
return await base.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException e)
{
try
{
e.Entries.Single().Reload();
await base.SaveChangesAsync();
}
catch { }
}
catch (Exception e)
{
throw e;
}
return result;
}
我收到错误ChangeTracker.Entries().Where
'System.StackOverflowException 类型的异常
解决方案
推荐阅读
- django - 使用特定字段中的所有唯一值创建一个 ChoiceFilter (Django)
- css - 使用 css 在 div 的底部创建弧
- angular - Angular 在启动其他 Observable 之前等待 Observable 完成
- reactjs - 您可以将“外部”编码的反应应用程序集成到 Visual Studio 项目/工作流中吗?
- sql - 从 Delphi 中的 SQL 查询的输出中复制数据
- ios - 布局约束不起作用iOS swift
- javascript - React 中的双面输入滑块,在达到初始范围 0 后,它也会向左移动并增加值,为什么?
- microsoft-graph-api - 是否有一个 api 端点来列出私人聊天中的文件?
- php - 如何更新存储为行的表列?
- android - 改造导致 Expected BEGIN_OBJECT 但在第 1 行第 153 列路径 $.joining 处为 STRING