私はEntity Frameworkを使用するASP.NET MVCアプリケーションで、保存中に奇妙な動作を発見しました。私は、データベースの顧客が存在するかどうかを確認するビューを持っています。そうであれば、そのデータがテーブルに表示されます。正常に動作します。ユーザーはテーブルに多くの顧客を追加することができます。小さな例:エンティティフレームワーク:EFは常に古い値の "上に"値を保存します
データベースには顧客JohnとJimが含まれています。それらは表に表示されます。ユーザーは2人の顧客をテーブルに追加します:PeterとJack、テーブルには顧客が含まれているはずです:John、Jim、PeterとJack。
だから、今私のコントローラに保存するとどうなるでしょう。保存されている顧客は、John、Jim、John、Jim、Peter、Jackです。 Entity Frameworkはこれまでの顧客のトップに追加しているようですが、私が望むものではないので、テーブルに表示されているように顧客を保存したいだけです。あなたが私にこれを助けてくれることを願っています。ここで
は、顧客を保存するために私のコントローラのコードです:ここで
var counter = 0;
string customerName = "";
while (true)
{
customerName = Request.Form["CustomerName[" + counter + "]"];
if (customerName == "" || customerName == null)
{
break;
}
Customer customer = new Customer();
customer.OverviewID = CustomerOverview.ID;
customer.Name = customerName;
db.Customer.Add(customer);
db.SaveChanges();
counter++;
}
は私がビュー内のテーブルに既存の顧客を追加する方法である:
@{
if (Model.Customers.Count() > 0)
{
foreach (var customer in Model.Cusomters)
{
<text>ArrayCustomers.push("@(customer.Name)");</text>
}
}
else
{
<text>ArrayCustomers.push("");</text>
}
}
refresh_table();
表にどのように表示されるかは、テーブルの構成方法と使用するRDBMSによって異なります。 'OrderBy'を使うだけでそれらを表示することができます –