我有一个本地和开发环境,每个环境彼此非常相似(除了OS差异)。它们都运行使用实体框架的同一个项目。我使用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的设置方式。例如,在本地名称,在dev上 Contact_name 。同样,这可能绝对没有与为什么我无法获得a
联系人。我没有在开发框中收到错误,联系人返回等等但我无法获得a
个联系人。
有人可以就如何解决此问题提供一些帮助/建议/指导吗?现在它已成为“木树换树”的案例......
帮助表示赞赏。
答案 0 :(得分:0)
原来这对我来说是一个灾难性的嘘声。请在此SO上查看对此的回答:
Why Won't This LINQ Return A Particular Initial?
感谢所有花时间偷看的人 - 至少是一个回答。
)