1

エンティティ モデルから Observable コレクションを埋めようとしている単純な方法に絞り込みました。私はそれを正しく行っているかどうかわかりません。

注: これは設計者のエラーのようです。プログラムをビルドして実行できます...表示されます。

    private ObservableCollection<LessonGroup> lessonGroups;
    public ObservableCollection<LessonGroup> LessonGroups
    {
        get { return LessonGroups; }
        set { lessonGroups = value; RaisePropertyChanged("LessonGroups"); }
    }


    private void GetLessonGroups()
    {
        //this using statement causes ArgumentException
        using (MyEntities ae = new MyEntities())
        {
            foreach (LessonGroup lg in ae.LessonGroups)
            {
                LessonGroups.Add(lg);
            }
        }
    }

例外は次のとおりです。

The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.
   at System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
   at System.Data.EntityClient.EntityConnection..ctor(String connectionString)
   at System.Data.Objects.ObjectContext.CreateEntityConnection(String connectionString)
   at System.Data.Objects.ObjectContext..ctor(String connectionString, String defaultContainerName)
   at IMPACT.ARCTrainer.Model.ARCTrainerEntities..ctor() in C:\Users\Leland\Documents\Visual Studio 2010\Projects\ARCTrainer\Model\ARCTrainer.Designer.cs:line 56
   at IMPACT.ARCTrainer.ViewModel.LessonsViewModel.GetLessonGroups() in C:\Users\Leland\Documents\Visual Studio 2010\Projects\ARCTrainer\ViewModel\LessonsViewModel.cs:line 171
   at IMPACT.ARCTrainer.ViewModel.LessonsViewModel..ctor(ViewModelLocator viewModelLocator) in C:\Users\Leland\Documents\Visual Studio 2010\Projects\ARCTrainer\ViewModel\LessonsViewModel.cs:line 37
   at IMPACT.ARCTrainer.ViewModel.ViewModelLocator..ctor() in C:\Users\Leland\Documents\Visual Studio 2010\Projects\ARCTrainer\ViewModel\ViewModelLocator.cs:line 46
4

1 に答える 1

1

GetLessonGroups は、クラス LessonsViewModel のコンストラクター内で呼び出されるようです。

このメソッドは MyEntities を呼び出しますが、この Entity Framework コンテキストは GUI プロジェクトと同じプロジェクトではないようです。

問題を解決する最善の方法は、デザイン モードであるかどうかを確認することです。MVVM Light を使用している場合は、IsInDesignMode プロパティを確認できます (したがって、プロパティが false の場合にのみ GetLessonGroups メソッドを呼び出します)。

于 2012-06-05T20:52:32.510 に答える