2

私のコード:

StrategyRepository strategyRepository = new StrategyRepository();
StrategyLookup strategy = strategyRepository.GetStrategy(int.Parse(hidSelectedStrategyID.Value.ToString()));

        //StrategicDirectionRepository strategicDirectionRepository = new StrategicDirectionRepository();
        StrategicDirectionLookup strategicDirection = strategyRepository.GetStrategicDirection(cb_StrategyDirectionsEdit.Value.ToString());
        if (strategicDirection == null) {
            strategicDirection = new StrategicDirectionLookup() { 
                Caption = cb_StrategyDirectionsEdit.Value.ToString(),
                SequenceNo = 100
            };
            //strategyRepository.AddStrategicDirection(strategicDirection);
        }

        //StrategicIntentRepository strategicIntentRepository = new StrategicIntentRepository();
        StrategicIntentLookup strategicIntent = strategyRepository.GetStrategicIntent(cb_StrategyIntentsEdit.Value.ToString());
        if (strategicIntent == null) {
            strategicIntent = new StrategicIntentLookup() {
                Caption = cb_StrategyIntentsEdit.Value.ToString(),
                SequenceNo = 100
            };
            //strategyRepository.AddStrategicIntent(strategicIntent);
        }

        strategy.Caption = txtStrategyEdit.Value.ToString();
        if (!strategicDirection.StrategyLookups.Select(o=>o.SID).Contains(strategy.SID))
        {
            strategicDirection.StrategyLookups.Add(strategy);
        }

        if (!strategicIntent.StrategicDirectionLookups.Select(o=>o.SDID).Contains(strategy.StrategicDirectionLookup.SDID))
        {

            strategicIntent.StrategicDirectionLookups.Add(strategy.StrategicDirectionLookup);
        }
        strategyRepository.SaveChanges();

行にあるときの例外プロンプト:strategicIntent.StrategicDirectionLookups.Add(strategy.StrategicDirectionLookup); この例外を回避するためにコードを修正するにはどうすればよいですか? どうもありがとう!

4

1 に答える 1

0

最初にオブジェクトをロードするためにオブジェクト コンテキストをインスタンス化し、保存を行うために 2 番目のオブジェクト コンテキストをインスタンス化しました。これは実行できません。両方に同じオブジェクト コンテキストを使用する必要があります。

リポジトリのコードがないと、これをどのように行っているかを確認するのは困難ですが、上記のメモは修正に役立つはずです (おそらく、クラス コンストラクターでインスタンス化された、コンテキストを保持するためのクラス レベルの変数)。

于 2013-05-06T09:08:53.493 に答える