只需调用我的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="data source=arpa;initial catalog=bibliotheque;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
但我在DAL中以及调用WCF的启动项目中都有连接字符串。我已经尝试评论方法“onModelCreating”以避免抛出错误但仍无法找到解决方案
我错过了什么?
答案 0 :(得分:0)
如果在IIS中托管,则需要将app.config文件的内容复制到您在IIS中托管的虚拟目录的web.config文件中。我不相信这是自动完成的。
如果您使用其他东西来托管,您同样需要找到执行主机的文件夹,并将内容复制到那个 app / web.config。
简而言之,连接字符串需要位于主机的.config中,而不是任何其他程序集。
有关详细信息,请参阅here。
答案 1 :(得分:0)
连接字符串应该在wcf中,所有没有必要把它放在dataccesslayer中