【发布时间】:2015-02-26 08:29:46
【问题描述】:
我有一个解决方案,其中包含多个项目。到目前为止,一切都运行良好,甚至从引用的项目中调用方法。
现在我尝试开始使用单元测试,这样我就可以测试不同的方法,而不会运行 GUI 等的全部开销。
我有一个 Form1,它创建了一个实体模型的实例。该模型是从 MySQL 数据库创建的。当我启动 Form-Project 时,从 Form1 实例化确实没有问题。但是当我引用我的单元测试项目中的所有内容时,并且只是实例 Form1,EF 似乎有问题。我得到的是我的实体模型的实例,其中包含以下内容:
*edit: 我得到的错误是:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'FROM ((SELECT
CASE WHEN (Extent2.ID IS NULL) THEN (NULL) ELSE (1) END AS ' at line 188
我设法看到一些列表已填满,而另一些则没有。但我真正不明白的是,为什么当从 project1 调用时,整个事情都可以工作,而从另一个项目调用,引用 project1,它会导致那个错误。
例如:table1.toList() 有效,而 table2.toList() 给出了上述错误。但仅在从 project2 调用时。
*edit2:我设法确定了
导致错误的行是:
technikerListe = entities.mitarbeiter.
Where(m => MitarbeiterIdListe.Contains(m.ID) && m.aktiv == "Y")....
(实体是我的模型实例)
但是当我得到这样的mitarbeiter表中的条目列表时
List<mitarbeiter> mitarbeiterList = entities.mitarbeiter.ToList();
end 然后尝试通过使用获取上述内容
technikerListe = mitarbeiterList.
Where(m => MitarbeiterIdListe.Contains(m.ID) && m.aktiv == "Y")....
它有效。
毕竟,这似乎是一个延迟加载问题?
【问题讨论】:
-
我不知道是不是只有我一个人,但我已经读过你的问题几次了,我看不出你的错误是什么,你似乎只是解释了发生了什么而不是怎么了?
-
在尝试确定问题后编辑了问题。感谢您的帮助。
标签: c# mysql entity-framework unit-testing entity-framework-6