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

次のように、このデータをデータベースに保存するコントローラーメソッドにWebページからデータを投稿しています。

   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 を使用して Web ページから投稿されます。データはコントローラー メソッドに適切に入力されていますが、データベースには保存されていません。このデータを保存するにはどうすればよいですか? さらに、データの保存中に ExpenseId を作成しているため、レコードが重複する可能性がありますが、ExpenseId は異なります。これを克服する方法を教えてください。

4

2 に答える 2

0

行った変更を保存していません。

  1. これを試してください: context.SaveChanges();

    ドキュメントから:

    public int SaveChanges()

    // データ ソースへのすべての更新を保持し、オブジェクト コンテキストの変更追跡をリセットします。

  2. 関数の戻り値をチェックして、保存されたかどうかを確認します。

    型: System.Int32 SaveChanges が呼び出されたときに、追加、変更、または削除された状態のオブジェクトの数。

  3. 保存されていない場合は、コードを try-catch ブロック内に配置し、例外をログに記録して問題を確認します。

それが役に立てば幸い!

于 2012-12-08T19:38:31.750 に答える
0

オブジェクトを呼び出しSaveChanges()context、変更を保存します。

于 2012-12-08T19:39:14.663 に答える