0
 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 中自动更新记录,但出现以下错误:

实体“成员:6”无法附加到此 EntityContainer,因为它已附加到另一个 EntityContainer。

我有以下表格,成员、对账、FromMainCompany、ToMainCompany 和 Saving(s)。会员与储蓄有关,即会员有储蓄。并且 Member 也与 FromMainCompany 相关(FromMainCompany 是成员及其总工资帐户扣除的集合 -不是那么重要

我的对帐屏幕中有一个名为 UpdateRecords 的按钮(在其 Execute() 方法上有上面的代码),当单击它以将会员每月储蓄自动添加到所有会员保存表时,我想要该按钮,但现在我收到此错误 -实体“会员” : 6' 无法附加到此 EntityContainer,因为它已附加到另一个 EntityContainer。

-谢谢。

4

1 回答 1

1
partial void updateRecords_Execute()
    {
        // Write your code here.

        using (var tempWorkspace = new DataWorkspace())
        {
            var mymembers = tempWorkspace.ApplicationData.Members;
            //var myscreen = this.Reconcilliations1.SelectedItem.FromMainCompanies.Where(a => a.Member != null).Select(b => b.Member);
            //Member myMember = new Member();
            foreach (Member item in mymembers)
            {
            Saving NewSavings = tempWorkspace.ApplicationData.Savings.AddNew();

            ////var koo = from a in FromMainCompanies
            ////          select a.Member;


                NewSavings.CaptureDate = DateTime.Now;
                NewSavings.Amount = item.Savings.Select(a=>a.Amount).LastOrDefault();
                NewSavings.FinancialYear = tempWorkspace.ApplicationData.FinancialYears.FirstOrDefault();
                NewSavings.Member = item;
                NewSavings.NewSavingsAmount = item.Savings.Select(a=>a.NewSavingsAmount).LastOrDefault();
            }





            try
            {
                tempWorkspace.ApplicationData.SaveChanges();

            }
            catch (Exception e)
            {
                this.ShowMessageBox(e.Message);
            } 

        }

        }

弄清楚了, AddNew() 应该在 foreach 循环中。- 欢呼

于 2013-04-07T14:38:48.430 回答