3

我有一个由 4 个项目组成的解决方案。MVC、WCF、业务 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 不是当前上下文模型的一部分。

4

1 回答 1

2

你是绝对正确的。我得到了解决方案。无需在 webconfig 中保留任何字符串以引用实体模型。我们可以参考上面的代码。但变化是配置上下文对象。

public SchoolDB(string  connectionString)
        : base(connectionString)
    {
    }
We need to change the constructor also by this format. 

感谢 Sampath

于 2012-12-16T05:10:30.500 回答