单个连接字符串使用多个Entity Framework模型(数据优先)

23 浏览
0 Comments

单个连接字符串使用多个Entity Framework模型(数据优先)

我有3个不同的项目,它们各自拥有指向同一数据库的EF实体数据模型。我不想在每个项目的app.config文件中保存连接字符串,而是想在我的模型之间共享它。\n我在stackoverflow上看到了这个链接How to share a connection string between multiple entity data model。\n但问题是,如果我更新EF模型,它会覆盖EF模型上下文中的代码,并且它将继承自DbContext而不是BaseContext。\n请帮忙解决这个问题。

0
0 Comments

解决方案是将连接字符串始终从MVC项目中获取,并且所有其他类库项目会自动引用它。

问题的原因是在一个解决方案中,有多个实体框架模型(Data First)的项目。每个项目都有自己的连接字符串,但只能有一个连接字符串被选中并用于所有实体框架模型。

解决方法是在MVC项目中设置连接字符串,然后让所有其他类库项目自动引用它。这可以确保所有实体框架模型都使用同一个连接字符串。

以下是一种可能的解决方案:

1. 在MVC项目的配置文件(通常是Web.config)中找到连接字符串的部分。

2. 确保连接字符串的名称是唯一的,并且与其他实体框架模型项目中的连接字符串不同。

3. 将连接字符串的值设置为所需的数据库连接信息。

4. 保存并关闭配置文件。

现在,所有其他类库项目将自动引用MVC项目中的连接字符串。当实体框架模型需要连接数据库时,它们将使用MVC项目中设置的连接字符串。

这种解决方法的优点是简单且易于维护。只需在一个地方设置连接字符串,就可以确保所有实体框架模型都使用相同的连接字符串。这样可以避免因为多个连接字符串而导致的混淆和错误。

0
0 Comments

问题的出现原因:

在这个问题中,出现的原因是每个项目都有自己的App.config文件,但是它们需要共享同一个连接字符串。如果每个项目都有自己的连接字符串,那么当数据库配置发生变化时,需要修改每个项目的连接字符串,这样会非常繁琐和容易出错。

解决方法:

为了解决这个问题,可以将连接字符串移动到一个单独的配置文件中,并在所有的项目中共享这个配置文件。具体的解决方法如下:

1. 创建一个名为ConnectionStrings.config的配置文件,将连接字符串放入其中。配置文件的内容如下:



  

2. 打开每个项目的App.config文件,在``标签之后添加以下代码,将连接字符串的配置文件引用进来:

...

...

这样做的好处是,ConnectionStrings.config文件只需要复制一次,然后所有的项目都可以引用这个共享的连接字符串配置文件。

如果项目没有App.config文件,可以手动添加一个。或者可以使用ConfigurationSettings手动加载配置文件。

这种方法是共享数据库配置的最佳方式,当需要修改Sql Server名称等配置时,只需要修改ConnectionStrings.config文件,而不需要修改所有的App.config文件。

在app.config文件中引用ConnectionStrings.config文件时,需要注意文件的路径。如果ConnectionStrings.config文件在一个共享的DAL项目中,而不同的项目有不同的EF数据模型,那么在app.config文件中引用ConnectionStrings.config文件时,需要根据实际情况设置正确的路径。

通过以上的解决方法,应该可以解决连接字符串配置的共享问题,并避免出现"No connection string named 'ABC_Entity' could be found in the application config file"的错误信息。

0