共享实体框架接口跨项目

时间:2013-11-15 11:47:22

标签: c# entity-framework tdd solid-principles

如何共享实体框架MyEntitiesDbContext界面交叉项目? 我想遵循S.O.L.I.D原则并将其用于测试其他项目。

主要问题是与界面共享模型实体而没有循环引用。

2 个答案:

答案 0 :(得分:0)

您可以通过使用t4模板来生成假货类来实现此目标。你可以生成

  • databaseContext的通用接口
  • 主要解决方案的Standart实现,实现通用接口
  • 假测试,实现通用接口。

要了解t4模板,您可以阅读http://msdn.microsoft.com/en-us/data/gg558520.aspx。我希望这篇文章对你有所帮助。祝你好运!

答案 1 :(得分:0)

  

如何共享实体框架MyEntitiesDbContext界面交叉   项目?我想遵循S.O.L.I.D原则并将其用于   测试其他项目。

要实现这一点,您需要使用EF生成的类来实现接口,然后使用模拟(可能是Rhino Mocks)来测试您的代码。

  

主要问题是与界面共享模型实体而没有   循环引用。

为了避免循环引用,您需要生成接口并将其包含在一个单独的程序集中,该程序集不会引用回EF程序集。

这些只是人们尝试使用EF时遇到的很多困难中的两个,即使它现在是6.0版本

幸运的是,您可以从https://entityinterfacegenerator.codeplex.com/

下载T4文件

他们帮助回答上述问题。