实体框架找不到我的连接字符串

时间:2016-12-20 14:58:50

标签: c# entity-framework wcf connection-string

只需调用我的WCF来填充我的datagridView

private void button1_Click(object sender, EventArgs e)
{
    ServiceReferenceReservations.ReservationsServiceClient srr = 
               new ServiceReferenceReservations.ReservationsServiceClient();
                        gridData.DataSource = srr.getAllReservations();
}

这就是mycf将businesslayer的返回类型转换为正确的

public List<clsReservation> getAllReservations()
{
    List<clsReservation> oDataList = new List<clsReservation>().ToList();

    List<Reservation> mesReservations = BusinessLayer.Reservations.LoadAllReservationsEF();

    foreach (var item in mesReservations)
    {
        clsReservation cls = new clsReservation()
                {
                    id = item.id,
                    lecteurID = item.lecteurID,
                    livreID=item.livreID
                };
        oDataList.Add(cls);
    }

    return oDataList;
}    

,业务层将调用数据访问层并返回数据

return DataAccessLayer.Reservations.LoadAllReservationEF();

然后我的数据访问层正在使用实体框架

public static List<Reservation> LoadAllReservationEF()
{
    List<Reservation> malisteReservation = new List<Reservation>();

    using (bibliothequeEntities dbcontext = new bibliothequeEntities())
    {
        List<Reservation_SelectAll_Result> maliste = dbcontext.Reservation_SelectAll().ToList();

        var x = from p in maliste
                select new Reservation
                        {
                            id = p.id,
                            lecteurID = p.lecteurID,
                            livreID = p.livreID,
                        };

        foreach (var item in x)
        {
            malisteReservation.Add(item);
        }
    }

    return malisteReservation;
}

我的数据访问层在Model1.Context.cs中抛出错误:

  

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

<connectionStrings>
    <add name="bibliothequeEntities" 
         connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=arpa;initial catalog=bibliotheque;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
         providerName="System.Data.EntityClient" />
</connectionStrings>

但我在DAL中以及调用WCF的启动项目中都有连接字符串。我已经尝试评论方法“onModelCreating”以避免抛出错误但仍无法找到解决方案

我错过了什么?

2 个答案:

答案 0 :(得分:0)

如果在IIS中托管,则需要将app.config文件的内容复制到您在IIS中托管的虚拟目录的web.config文件中。我不相信这是自动完成的。

如果您使用其他东西来托管,您同样需要找到执行主机的文件夹,并将内容复制到那个 app / web.config。

简而言之,连接字符串需要位于主机的.config中,而不是任何其他程序集。

有关详细信息,请参阅here

答案 1 :(得分:0)

连接字符串应该在wcf中,所有没有必要把它放在dataccesslayer中