实体集名称随机更改

时间:2013-02-03 18:29:49

标签: c# entity-framework

我有一个本地和开发环境,每个环境彼此非常相似(除了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联系我不知道(??),但这是我发现的奇怪之处: -

本地机器: - enter image description here

开发机器: - enter image description here

对于那些不那么鹰眼的人来说,EF返回的实体集名称似乎有所不同。使用开发机器,它们会在单词之间返回下划线 - 这不是EDMX的设置方式。例如,在本地名称,在dev上 Contact_name 。同样,这可能绝对没有与为什么我无法获得a联系人。我没有在开发框中收到错误,联系人返回等等但我无法获得a个联系人。

有人可以就如何解决此问题提供一些帮助/建议/指导吗?现在它已成为“木树换树”的案例......

帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

原来这对我来说是一个灾难性的嘘声。请在此SO上查看对此的回答:

Why Won't This LINQ Return A Particular Initial?

感谢所有花时间偷看的人 - 至少是一个回答。