在WinForms中将实体保存到数据库

时间:2013-11-23 19:23:40

标签: c# winforms entity-framework

我看了很多关于此的帖子,但仍未找到解决方案:

我正在使用使用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。它保留在上下文中(如果我从上下文重新加载我的卡片,新的卡片就在那里......)但从未进入数据库。

0 个答案:

没有答案