私はローカル環境と開発環境を持っていますが、それぞれが非常に似ています (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
。
これを修正する方法について、誰かが支援/アドバイス/ガイダンスを提供できますか? 今では「木には木」のケースになっています...
助けていただければ幸いです。