2015-04-16 71 views
0

我想在EF中做最簡單的事情,將數據記錄保存到數據庫表中。實體框架DbContext不會將數據保存到數據庫中

一切順利,模型被創建,添加和保存,但是當我去到表中的什麼...

有誰看到我在做什麼錯?

這是我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不爲空,所以行不是問題。沒有例外,沒有什麼,但是再次數據庫是空的。

+0

通過「走出表」你的意思是在VS通過數據庫工具看着它或在你的代碼中選擇值?如果第一個:也許你只是看着錯誤的數據庫,EF正在使用不同的'ConnectionString'。 – germi

+0

@germi both ...我甚至從SQL管理工作室中查看它......並且在調試過程中,我檢查了值是否正確: -/ –

+0

您的代碼是否可以指向「測試」數據庫錯誤(例如,(localdb)\ v11.0數據庫)? – Ulric

回答

1

試試這個,而不是FailCounter failCount = new FailCounter();
嘗試這樣FailCounter failCount = dbcnt.Fails.Create();

+0

好吧,如果它有效,但是'Add'也應該這樣做。 – tschmit007

相關問題