Entity FrameWork 4.0
新建了一个类库,在类库里添加了一个EDMX,
通过private busEntities busDB = new busEntities();执行的时候提示一下异常信息
System.ArgumentException: The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid.
如下是app.config
<configuration>
<connectionStrings>
<add name="busEntities" connectionString="metadata=res://*/busDB.csdl|res://*/busDB.ssdl|res://*/busDB.msl;provider=System.Data.SqlClient;provider connection string="Data Source=172.17.30.24;Initial Catalog=bus;Persist Security Info=True;User ID=sa;Password=sa;MultipleActiveResultSets=False"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
把 busEntities 的代码贴一下。
自动生成的代码应该不会出错把?
@wcheng123: 因为你的错误是 busEnities 的代码中指定的命名连接字符串在你的配置文件中找不到。
我随便建立一个项目,也是自动生成代码,的确像你说的:“自动生成的代码应该不会有错吧?”
所以,你得问题就是,你如何创建的项目,项目类型是什么,你又是如何使用的 busEntities。正如你自己所说:“自动生成的代码不会有错吧?”,那么错的只能在你使用错了。
@Launcher:
public busEntities() :
base("name=busEntities", "busEntities")
{
this.OnContextCreated();
}
@wcheng123: 那我现在来猜测,你建立了一个 asp.net mvc 项目 和一个 dll 项目,然后你在 dll 项目中添加了 edmx ,然后你在 asp.net mvc 项目中引用了 dll 项目中的 busEntities ,对吗?
@Launcher: 差不多吧,我建立的一个Model层,这个层里面放了一个EDMX,然后在建立了一个DAL层,在DAL层里面调用Model层里面的EDMX。
@wcheng123: 请把你 Model 层(确定是一个 dll 吗?)的 app.config 中的 <add name="busEntities" 复制到你的运行项目,比如 asp.net mvc 项目的 web.config 中去。
@Launcher:谢谢,复制过去后就好了。
@Launcher: 你博客里有相关Unity依赖注入的文章么?有的话,给个链接
@wcheng123: 没有。我只有 unity 的官方帮助文档。
@Launcher: 中文版的么?
@wcheng123: 不是,英文的。