首先感谢园友Mainz,这个动态指定数据库的问题困扰了我很久很久,Mainz给了我很大的帮助,并有一篇专门针对这个问题写的一篇博文。建议大家都去看看,说得很详细,很有参考价值。
这里我使用了另一种实现客户端指定DataBase,动态加载数据库的方法。暂时我认为是最为简单的,不过缺点就是每次CURD都要指定好这个DataBase,配合使用domainDataSource控件的话还好,比较方便,直接一开始指定传递的参数database即可.
废话不说:
后台实现:增加一个传递指定数据库参数的自定义方法 GetMyTestEntityNew
private TESTEntities _db; private string entityConnectionString = ConfigurationManager.ConnectionStrings["TESTEntities"].ConnectionString; public IQueryable<TestEntity> GetMyTestEntityNew(string database) { var ecsb = new EntityConnectionStringBuilder(entityConnectionString); var scsb = new SqlConnectionStringBuilder(ecsb.ProviderConnectionString); scsb.InitialCatalog = database; ecsb.ProviderConnectionString = scsb.ToString(); _db = new TESTEntities(ecsb.ToString()); return _db.TestEntity; }