1

我有以下课程

 public class Expense
{
    public Guid ExpenseId { get; set; }
    public DateTime date { get; set; }
    public string type { get; set; }
    public int cost { get; set; }
    public string extra { get; set; }
}

我将数据从网页发布到 cntroller 方法,该方法将此数据保存在数据库中,如下所示:

   public string SaveExpense(Expense obj)
    {
        obj.ExpenseId = Guid.NewGuid();
        if (ModelState.IsValid)
        {
            context.expenses.Add(obj);
            context.SaveChanges();
            return "Saved";
        }
        else
            return "Error";   
    }

费用 obj 是使用 AJAX 和 JQuery 从网页发布的。数据正确进入控制器方法,但未保存在数据库中。我怎样才能保存这些数据?此外,我在保存数据的同时创建了 ExpenseId,因此记录可能是重复的,但会有不同的 ExpenseId。请建议我一种方法来克服这个问题。

4

2 回答 2

0

您没有保存所做的更改。

  1. 试试这个: context.SaveChanges();

    文档中:

    公共 int SaveChanges()

    //保持对数据源的所有更新并重置对象上下文中的更改跟踪。

  2. 检查函数的返回值以确认它是否被保存。

    类型:System.Int32 调用 SaveChanges 时处于已添加、已修改或已删除状态的对象数。

  3. 如果没有保存,则将代码放在 try-catch 块中并记录异常以检查问题所在。

希望能帮助到你!

于 2012-12-08T19:38:31.750 回答
0

调用SaveChanges()您的context对象以保存您的更改。

于 2012-12-08T19:39:14.663 回答