エンティティ フレームワークで非常に奇妙な問題が発生しています。エンティティ フレームワークを使用してデータベースにデータを保存しています。SaveChanges() メソッドを呼び出すと、データがデータベースに保存され、SQL でデータベースの更新を確認することもできます。しかし、アプリケーションを閉じて再度開くと、データベースのデータが失われ、最初に保存する前の以前のデータが表示されます。これは、アプリケーションで別のレコードを選択して保存しても発生し、以前のレコード データは失われます。考えられるすべてのオプションを試しましたが、何も役に立ちませんでした。
以下はコードスニペットです。
AxRetailPosDb context = new AxRetailPosDb(DbContextHelper.DbContextConnectionString(this.Application.Settings.Database.Connection.ConnectionString));
bool flag = false;
try
{
CUSTTABLE cust = context.CUSTTABLEs.Where(c => c.ACCOUNTNUM == customer.CustomerId).FirstOrDefault();
DIRPARTYTABLE dirpartytbl = context.DIRPARTYTABLEs.Where(p => p.RECID == cust.PARTY).FirstOrDefault();
if (cust != null)
{
cust.IGNDELIVERYCODE = cusEextView.DeliveryCode;
if (cusEextView.Birthday != null && cusEextView.Birthday != Convert.ToDateTime("01-01-0001"))
{
cust.IGNBIRTHDATE = Convert.ToDateTime(cusEextView.Birthday.ToShortDateString());
}
cust.IGNMODELSCORE = cusEextView.Modelscore;
cust.CREDITMAX = cusEextView.ChargeLimit;
if (cusEextView.Gender != null)
{
cust.IGNGENDER = (int)Enum.Parse(typeof(Microsoft.Dynamics.Retail.Pos.Customer.WinFormsTouch.frmNewCustomer.Gender), cusEextView.Gender);
}
}
if (dirpartytbl != null)
{
dirpartytbl.LANGUAGEID = customer.Language;
}
context.SaveChanges();
}
catch
{
}
finally
{
if (context != null)
{
context.Dispose();
}
}
どんな提案でも大歓迎です。