0

我想将 DB 实体层与 DataAccessLayer 分开。

我会写我的步骤:

  1. 创建空解决方案“DB_sep”
  2. 创建类库'DB'
  3. 将我的数据库的 ADO.NET 实体数据模型“DBEntity”添加到“DB”项目
  4. 将控制台应用程序“App”添加到“DB_sep”
  5. 将“DB”引用添加到“App”项目

现在我想从“App”项目访问数据库对象,但我无法访问 dbContext,我收到错误

'在应用程序配置文件中找不到名为'DBEntity'的连接字符串。'

我有这行代码:

try
{
DB.DBEntity db = new DB.DBEntity();
Customer cust = db.Customers.FirstOrDefault(c => c.ID == 2);
Console.WriteLine(cust.Name);
}
catch (Exception ex)
{

Console.WriteLine(ex.Message);
}

有没有办法只将连接字符串保留在“DB”中,或者我必须将它放在“App”项目中?

4

1 回答 1

1

'在应用程序配置文件中找不到名为'DBEntity'的连接字符串。' - 似乎足够合法。

app.config文件(例如,带有适当的ConnectionString 声明)添加到实际执行的项目中

由于以 EF 为目标,因此请注意特定的实体框架配置规则- 即这里它正在寻找名称DBEntity。实际规则因所使用的 EF 版本而异。app.config(模型项目中有一个可以用作参考的可能性很大。)


也可以为适当的构造函数重载指定一个 DbConnection(或者可能是连接字符串)——即通过依赖注入——或者以其他方式指定一个备用数据库提供程序。

于 2013-11-14T07:42:34.860 回答