为什么我的数据不使用Entity Framework保存

时间:2012-12-08 19:35:41

标签: c# jquery asp.net-mvc asp.net-mvc-4 entity-framework-5

我有以下课程

 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";   
    }

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

2 个答案:

答案 0 :(得分:0)

您没有保存所做的更改。

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

    来自documentation

      

    public int SaveChanges()

         

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

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

      

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

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

  4. 希望它有所帮助!

答案 1 :(得分:0)

致电SaveChanges()对象上的context以保存更改。