【发布时间】:2015-04-16 09:17:52
【问题描述】:
我正在尝试在 EF 中做最简单的事情,将数据记录保存到数据库表中。
一切顺利,模型被创建、添加和保存,但是当我走到桌子前时,什么都没有......
有人看到我做错了吗?
这是我的DbContext:
public class AuthContext : IdentityDbContext<ApplicationUser>
{
public AuthContext() : base("AuthContext")
{
}
public virtual DbSet<TransferResponse> Transactions { get; set; }
public virtual DbSet<FailCounter> Fails { get; set; }
}
这是我的模型:
public class FailCounter
{
[Key]
public int Id { get; set; }
public string UserId { get; set; }
public int FailCounterValue { get; set; }
}
这是保存的代码:
using(AuthContext dbcnt = new AuthContext())
{
var userId = repo.FindByUserName(model.DeviceId);
FailCounter failCount = new FailCounter();
failCount.FailCounterValue = 1;
failCount.UserId = userId.Id;
dbcnt.Fails.Add(failCount);
dbcnt.SaveChanges();
return Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Invalid username or password.");
}
我使用调试器并没有发现任何东西... userId 不为空,因此该行不是问题。没有例外,什么都没有,但是数据库又是空的。
【问题讨论】:
-
“去表”是指通过数据库工具在 VS 中查看它还是在代码中选择值?如果是第一个:也许您只是在查看错误的数据库,而 EF 正在使用不同的
ConnectionString。 -
@germi both...我什至从 SQL Managment Studio 中查看过...在调试过程中,我也检查了值是否正确:-/
-
您的代码是否会错误地指向“测试”数据库(例如,(localdb)\v11.0 数据库)?
-
运行 SQL Profiler 以查看执行了哪些 SQL 语句。 SaveChanges 的返回值是多少?您是否使用了未提交的事务?
-
@PanagiotisKanavos 我刚刚做过,它一直在保存值。首先,我重新启动了 SQL MS,然后重新启动了 VS,仍然没有,在我重新启动机器后,所有数据都在那里......完全奇怪的情况,但它毕竟有效。谢谢大家!
标签: c# asp.net entity-framework