データベースからレコードの最後の値を取得しようとしています。私はエンティティフレームワークを使用しています。私は残高の最終価値を取得し、ユーザーが新しい残高を得るために入力する金額を差し引いています。私はこれに慣れず、簡単な経費管理システムを作成しようとしています。私は新しいレコードを作成しようとすると列の最後の値を返します
私のコントローラ
public ActionResult Create([Bind(Include = "ExpenseId,ExpenseFor,DateTime,Amount,Balance,RowVersion")] Expense expense)
{
if (ModelState.IsValid)
{
var a = db.Expenses.Select(b => b.Balance);
var c = a.Last();
expense.Balance = c - expense.Amount;
db.Expenses.Add(expense);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(expense);
}
return View(expense);
}
私のモデルは、この
public class Expense
{
public int ExpenseId { get; set; }
public string ExpenseFor { get; set; }
public DateTime DateTime { get; set; }
public Decimal? Amount { get; set; }
public Decimal? Balance { get; set; }
[Timestamp]
public byte[] RowVersion { get; set; }
}
のように見える、それは方法は、ストア式に変換することができないと言います。私は本当にこれを助けてくれてありがとう。
'VARのC = db.Expenses.Last()しようとはバランス;。 –
あなたはその例外の原因となるコードを投稿していません。この例外は、EFがSQLへの変換方法を知らない問合せでメソッドを使用しようとすると発生します。例えば、これはあなたのエンティティ上のカスタムメソッドか 'String.IsNullOrWhiteSpace'のようなものです。しかし、ここのようなものはありません。 –
@ChrisPrattコンパイラがvar c = a.Last();を指しています。例外が発生します。 – singha4086