partial void updateRecords_Execute()
{
// Write your code here.
using (var tempWorkspace = new DataWorkspace())
{
Saving NewSavings = tempWorkspace.ApplicationData.Savings.AddNew();
var koo = from a in FromMainCompanies
select a;
foreach (var i in koo)
{
if (i.Member != null)
{
NewSavings.CaptureDate = DateTime.Now;
NewSavings.Amount = i.Member.Savings.Select(a => a.Amount).FirstOrDefault();
NewSavings.FinancialYear = tempWorkspace.ApplicationData.FinancialYears.FirstOrDefault();
NewSavings.Member = i.Member;
NewSavings.NewSavingsAmount = i.Member.Savings.Select(a => a.NewSavingsAmount).FirstOrDefault();
try
{
tempWorkspace.ApplicationData.SaveChanges();
}
catch (Exception e)
{
this.ShowMessageBox(e.Message);
}
}
}
}
}
Lightswitch でレコードを自動的に更新しようとすると、次のエラーが発生します。
エンティティ 'Member : 6' は、別の EntityContainer に既に接続されているため、この EntityContainer に接続できません。
次のテーブルがあります。Member(s)、Reconciliation(s)、FromMainCompany、ToMainCompany、および Saving(s)。メンバーは貯蓄に関連しています。つまり、メンバーは貯蓄を持っています。また、Member も FromMainCompany に関連しています (FromMainCompany は、Members のコレクションであり、その給与口座控除の合計です。それほど重要ではありません) 。
調整画面に UpdateRecords というボタンがあります(Execute() メソッドに上記のコードがあります)。クリックすると、メンバーの毎月の節約額がすべてのメンバー節約テーブルに自動的に追加されますが、このエラーが発生します - Entity 'Member : 6' は、既に別の EntityContainer にアタッチされているため、この EntityContainer にアタッチできません。
-ありがとう。