我看了很多关于此的帖子,但仍未找到解决方案:
我正在使用使用EntityFramework(6?)的winforms应用。当我加载表单时,我可以使用上下文(实体)从数据库中读取。但是,当我在添加新实体后保存更改时,它不会持久保存到数据库。
var c = new Card { Name = tbName.Text, Quantity = int.Parse(tbQuantity.Text) };
dbContext.Cards.Add(c);
dbContext.SaveChanges();
dbContext在表单构造函数中设置,是“LiquorTrackEntities”的实例。
LiquorTrackEntities dbContext;
public Form1()
{
InitializeComponent();
dbContext = new LiquorTrackEntities()
从数据库读取工作:
var cards = dbContext.Cards.ToList();
我一直在asp.net MVC中做这些东西,但它在WinForms中不起作用..在winforms中我有什么特别之处吗?我也知道正常的“使用(var db = new LiquorEntitiesEntities())”约定,但我只想在我担心约定之前使其运行。
有什么想法吗?
试过这个无济于事:
var c = new Card { Name = tbName.Text, Quantity = int.Parse(tbQuantity.Text) };
dbContext.Cards.Attach(c);
dbContext.Entry(c).State = EntityState.Added;
dbContext.SaveChanges();
刚尝试使用EF5创建一个新的EDMX ..同样的问题。
更新: 添加卡后,SaveChanges确实返回1。它保留在上下文中(如果我从上下文重新加载我的卡片,新的卡片就在那里......)但从未进入数据库。