0

我有一个本地和开发环境,彼此非常相似(除了操作系统差异)。他们都运行使用实体框架的同一个项目。我经常使用 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 回答