0

私はローカル環境と開発環境を持っていますが、それぞれが非常に似ています (OS の違いは別として)。どちらも、Entity Framework を利用する同じプロジェクトを実行しています。私は両方の環境でデータを調べるために LINQpad をかなり使用していますが、必要に応じて SQL などにアクセスできます。

ですから、これはすべて非常に奇妙な出来事から始まりました。ビジネス ロジック レイヤー内で、リストを取得するための呼び出しを行い、Contactsそのリストをカスタム型にマーシャリングします。カスタム タイプはInitial、各連絡先の名前に基づくインデックスを呼び出します。

参考までに、これはマーシャリングを実行するコードです:-

private static IEnumerable<AlphabetisedContact> _getGroupedContacts(int clientid)
        {
            return _getLiteContacts(clientid).GroupBy(c => c.Name[0]).Select(
                    g => new AlphabetisedContact { Initial = g.Key, Contacts = g.ToList() }).OrderBy(g => g.Initial);
        }

したがって、これはすべてうまくいくようです。ただし、Contact最初のイニシャルがa. これをデバッグしてみることにしましたが、LINQpad を使用すると奇妙なことがわかりました。これが私のコードが連絡先を返さないことに関係しているかどうかaはわかりませんが(??)、これは私が見つけた奇妙さでした:-

ローカル マシン:- ここに画像の説明を入力

開発機:- ここに画像の説明を入力

イーグルアイではない方のために説明すると、EF によって返されるエンティティ セット名は異なるようです。開発マシンでは、単語間にアンダースコアが付けられて返されます。これは、EDMX のセットアップ方法ではありません。たとえば、ローカルではName、devではContact_nameです。繰り返しますが、これは私が連絡先を取得できない理由とはまったく関係aがないかもしれません. 開発ボックスでエラーが発生しない、連絡先が返されるなどなどですが、連絡先を取得できませんa

これを修正する方法について、誰かが支援/アドバイス/ガイダンスを提供できますか? 今では「木には木」のケースになっています...

助けていただければ幸いです。

4

1 に答える 1

0

これは私の側では壊滅的なブーブーだったことが判明しました。この SO でこれに対する回答を参照してください。

この LINQ が特定のイニシャルを返さないのはなぜですか?

時間をかけて覗き見してくれたすべての人に感謝します-そして少なくとも答えを突き刺してください.

;)

于 2013-02-04T21:09:22.640 に答える