我使用实体框架和ASP。NET MVC 4构建应用程序
我的解决方案分为两个项目;
一个类库,其中包括我的数据模型(.edmx)文件和一些自定义接口 引用上面类库的“容器”MVC项目
我的问题是,当我试图使用'MyEntites' DbContext时,我得到以下错误:
中找不到名为“MyEntities”的连接字符串 应用程序配置文件。
我猜这个问题与连接字符串位于类库的app.config而不是MVC项目的事实有关。
有人有什么建议吗?
我使用实体框架和ASP。NET MVC 4构建应用程序
我的解决方案分为两个项目;
一个类库,其中包括我的数据模型(.edmx)文件和一些自定义接口 引用上面类库的“容器”MVC项目
我的问题是,当我试图使用'MyEntites' DbContext时,我得到以下错误:
中找不到名为“MyEntities”的连接字符串 应用程序配置文件。
我猜这个问题与连接字符串位于类库的app.config而不是MVC项目的事实有关。
有人有什么建议吗?
当前回答
由包含.edmx文件的项目生成的连接字符串生成连接字符串,这似乎是app.config类型文件的保留,这些文件被复制到输出目录,并被可执行文件引用以存储运行时配置信息。
这在web项目中中断,因为没有自动的过程将随机的.config信息添加到web中。web项目的配置文件。
最简单的方法是将连接字符串从配置文件复制到web的连接部分。配置文件,忽略配置文件内容。
其他回答
@RyanMann在上面的回答下评论道:
将连接字符串存储在一个配置文件中,然后通过<connectionString configSource="../ProjectDir/SharedConnections "在其他项目中引用它们。配置" / >
这是一个很棒的建议!
它还可以在App.config和Web之间共享连接字符串。配置文件!
任何想要遵循这个建议的人,都应该去看看这个SO答案。 它有一个关于在解决方案中的多个项目之间共享连接字符串的非常棒的分步指南。
唯一需要注意的是,configSource必须存在于同一目录或子目录中。上面的链接解释了如何使用“添加为链接”来解决这个问题。
我有这个问题时,我使用多个项目,启动项目与web。EntityFramework项目的config和app.config。
为了避免这个问题,你必须:
您需要连接字符串在开始*。配置文件。 您需要将EntityFramework DLL安装到引用中
确保你已经在启动项目的ROOT web.config中放置了连接字符串。
I know I'm kinda stating the obvious here, but it happened to me too - though I already HAD the connection string in my MVC project's Web.Config (the .edmx file was placed at a different, class library project) and I couldn't figure out why I keep getting an exception... Long story short, I copied the connection string to the Views\Web.Config by mistake, in a strange combination of tiredness and not-scrolling-to-the-bottom-of-the-solution-explorer scenario. Yeah, these things happen to veteran developers as well :)
尝试将连接字符串复制到MVC项目中的.config文件中。
将连接字符串复制到app.config或web。如果在数据层项目中使用实体框架,请在主项目中安装实体框架nuget。