フロントエンドとしてMacのMonotouch/C#を使用するアプリケーションがあり、バックエンドのVS2010のWCFサービスからデータを取得しています。私は去ってしまう前に昨夜、すべてが夢のように働いていました。今日、何が起こっているのか分かりません。私が見ることができるのは、Monotouchのlinq内から例外が来ていることです。最後の数日でこのコードに触れていないので、私はすべてをやっているようです。その後、MonoTouch&LINQ - オブジェクトの現在の状態のため、操作が無効です
私は戻ってWCFからGetAllStaffResult
オブジェクトを取得した後、私は戻ってメインスレッドに自分自身を取得し、この方法Populate()
を呼び出す:
ここでスタックトレースがあります:
System.InvalidOperationException: Operation is not valid due to the current state of the object.
at System.Linq.Enumerable.First[FranchiseListingItem] (IEnumerable'1 source, System.Func2 predicate, Fallback fallback) [0x0004a] in /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System.Linq/Enumerable.cs:816
at System.Linq.Enumerbale.First [FranchiseListingItem] (IEnumerable'1 source, System.Func2 predicate) [0x00007] in /Developer/MonoTouch/Source/mono/mcs/class/System.Core/System.Linq/Enumerable.cs:843
at ADMobileServices.BOTransferDTOs.GetAllStaffResult.Populate() [0x0003b] (my code)
わかりませんこれを引き起こす原因は何か...誰にもアイデアはありますか? MTソースファイルを見つけることができるので、私はそれらの行を見ることができます。
Oh、this
はGetAllStaffResult
であり、上記の方法はスタッフ、フランチャイズ、ロケーションの配列を持つ部分クラスです。 populateメソッドは各スタッフメンバーを取り、スタッフのフランチャイズIDに基づいてフランチャイズの名前を入力します。私は長いフランチャイズ名を持つ500人のスタッフのように戻ってくるので、クライアント側でオブジェクトグラフを再構築して帯域幅を節約しているので、これをやっています。
データベースに外部キーの関係が存在するため、私はSingleが常に結果を返すことを100%確信しています。 First()も私に同じ問題を与えました。
EDIT:スタックトレースは、First()メソッドの後に試したFirst()メソッド用です。私は今、ソースコードをチェックアウトしています、私の発見を報告します。
あなたはそうです。私はテストフランチャイズエンティティを除外していたようで、私はスタッフリストから除外したことを忘れていました。ありがとう! –