来自另一个项目的实体框架连接字符串引用

时间:2012-12-15 11:04:32

标签: entity-framework c#-4.0 linq-to-sql entity linq-to-objects

我有一个由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不是当前上下文模型的一部分。

1 个答案:

答案 0 :(得分:2)

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

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

感谢Sampath