我最近开始进入EntityFramework,以便将我的模型自动映射到MySql数据库。所以我阅读了一些教程并开始测试以验证它们。一切正常,只要我有一个项目。如果我将解决方案分开,则会出现一些问为了证明这一点,我使用EF6.1设置了一个控制台项目(让我们称之为A),它将我的所有数据保存到数据库中。一切正常。如果我现在创建第二个控制台项目(让我们称之为B)并通过IRepository-Wrapper(来自A)使用DbContext,则会出现一些问题:
为了区分问题,我不希望项目B知道数据是通过EF存储在数据库中的。或者举一个现实世界的例子,我不希望我的WPF Gui知道,数据来自数据库。
这些问题是否有解决方法?我错过了什么,或者在使用EF时我是否必须忍受这个问题?
答案 0 :(得分:0)
对于第一个问题,您不必强制将连接字符串放在程序集的配置文件中。您可以使用您喜欢的任何内容(您自己的config / ini文件,注册表等),然后将连接字符串传递给DbContext(connectionString)
构造函数。
至于第二个问题,这似乎取决于你如何抽象数据库。如果它是一个完整的抽象,那么它不应该泄漏EntityFramework.SqlServer
上的任何依赖。另一方面,Entity Framework本身已经遵循了存储库设计模式,所以我不确定你是否需要在它上面添加另一个层。如果您确实想继续创建数据库抽象层,请考虑将其放在第三个库项目中,而其他面向用户的应用程序项目将引用该项目。