我使用实体框架和ASP。NET MVC 4构建应用程序
我的解决方案分为两个项目;
一个类库,其中包括我的数据模型(.edmx)文件和一些自定义接口 引用上面类库的“容器”MVC项目
我的问题是,当我试图使用'MyEntites' DbContext时,我得到以下错误:
中找不到名为“MyEntities”的连接字符串 应用程序配置文件。
我猜这个问题与连接字符串位于类库的app.config而不是MVC项目的事实有关。
有人有什么建议吗?
我使用实体框架和ASP。NET MVC 4构建应用程序
我的解决方案分为两个项目;
一个类库,其中包括我的数据模型(.edmx)文件和一些自定义接口 引用上面类库的“容器”MVC项目
我的问题是,当我试图使用'MyEntites' DbContext时,我得到以下错误:
中找不到名为“MyEntities”的连接字符串 应用程序配置文件。
我猜这个问题与连接字符串位于类库的app.config而不是MVC项目的事实有关。
有人有什么建议吗?
当前回答
我刚刚发现的解决这个问题的最好方法是临时将该项目(很可能是一个类库)设置为启动项目。这将强制包管理器控制台使用该项目作为它的配置源。这样设置的部分原因是配置文件通常遵循的自顶向下模型。经验法则是,最接近客户端的项目(例如MVC应用程序)是web。将使用的Config或app.config。
其他回答
我有这个问题时,我使用多个项目,启动项目与web。EntityFramework项目的config和app.config。
为了避免这个问题,你必须:
您需要连接字符串在开始*。配置文件。 您需要将EntityFramework DLL安装到引用中
您的解决方案中是否使用了多个项目?
因为如果你是,你必须检查的web配置是与de .edmx文件在同一个项目中的配置
如果您正在使用MVVM模型,请尝试将连接字符串复制到项目的所有部分。
例如,如果您的解决方案包含两个项目,类库项目和wpf项目,您必须复制后端项目(库类项目)的连接字符串,并将副本放在wpf项目的App.config文件中。
<connectionStrings>
<add name="DBEntities" ... />
</connectionStrings>
希望对你有帮助:)
你可以把连接字符串传递给EntityFramework,然后继续你的生活:
public partial class UtilityContext : DbContext
{
static UtilityContext()
{
Database.SetInitializer<UtilityContext>(null);
}
public UtilityContext()
: base("Data Source=SERVER;Initial Catalog=DATABASE;Persist Security Info=True;User ID=USERNAME;Password=PASSWORD;MultipleActiveResultSets=True")
{
}
// DbSet, OnModelCreating, etc...
}
将连接字符串复制到app.config或web。如果在数据层项目中使用实体框架,请在主项目中安装实体框架nuget。