Как выбрать из двух строк подключения? - PullRequest
2 голосов
/ 24 декабря 2011

Добрый день, я столкнулся с проблемой выбора между двумя строками подключения, используя C # и Linq to Entities. В настоящее время у меня есть две строки подключения, которые:

<add name="GameHutDBEntities1" connectionString="metadata=res://*/GameHutModel.csdl|res://*/GameHutModel.ssdl|res://*/GameHutModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=EMMANUEL-PC\SQLEXPRESS;Initial Catalog=GameHutDB;user id=GameHutAdmin; password=123;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
<add name="GameHutDBEntities2" connectionString="metadata=res://*/GameHutModel.csdl|res://*/GameHutModel.ssdl|res://*/GameHutModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=EMMANUEL-PC\SQLEXPRESS;Initial Catalog=GameHutDB;user id=test; password=1234;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

У меня есть две роли: администратор и клерк. Как я могу разрешить администратору войти в систему с первой строкой подключения, а клерк войдет в систему со второй строкой подключения?

enter image description here

Ответы [ 2 ]

5 голосов
/ 24 декабря 2011

Адаптировано с этот ответ :

string connString;

if(IsAdmin(user))
    connString = ConfigurationManager.ConnectionStrings["GameHutDBEntities1"];
else
    connString = ConfigurationManager.ConnectionStrings["GameHutDBEntities2"];

using(EntityConnection con = new EntityConnection(connString))
{
  using (Entities context = new Entities(con))
  {
      // Some code here
  }
}

Где IsAdmin - функция, принимающая user и возвращающая значение true, если он является администратором, и значение false, если нет.

2 голосов
/ 24 декабря 2011
var conn = new EntityConnection();
conn.StoreConnection.ConnectionString = ConfigurationManager.ConnectionStrings["GameHutDBEntities2"];

this.Entities = new KurtDBEntities(conn);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...