我有一个由4个项目组成的解决方案。 MVC,WCF,Business LYR,DataAcess。我正在使用实体框架进行数据库事务。我的要求是我只想从MVC webconfig获取实体连接字符串,而不在引用层的APP.cofig中引用。在这种情况下是否可能?
当我尝试以下代码时出现错误。
this.ConnectionString="data source=cmh-sosql;initial catalog=Student;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework";
System.Data.SqlClient.SqlConnectionStringBuilder scsb = new System.Data.SqlClient.SqlConnectionStringBuilder(this.ConnectionString);
EntityConnectionStringBuilder ecb = new EntityConnectionStringBuilder();
ecb.Metadata = "res://*/schoolModel.csdl|res://*/schoolModel.ssdl|res://*/schoolModel.msl";
ecb.Provider = "System.Data.SqlClient";
ecb.ProviderConnectionString = scsb.ConnectionString;
using (SchoolDB schoolDB = new SchoolDB(ecb.ConnectionString))
错误:实体类型student不是当前上下文模型的一部分。
答案 0 :(得分:2)
你是完全正确的。我得到了解决方案。无需在webconfig中保留任何字符串以引用实体模型。我们可以使用上面的代码来参考它。但是改变是配置上下文对象。
public SchoolDB(string connectionString)
: base(connectionString)
{
}
We need to change the constructor also by this format.
感谢Sampath