我有一个本地和开发环境,彼此非常相似(除了操作系统差异)。他们都运行使用实体框架的同一个项目。我经常使用 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
联系人。
任何人都可以就如何解决这个问题提供一些帮助/建议/指导吗?现在已经变成了“以木换树”的案例……
帮助表示赞赏。