Jak mogę sprawić, aby LINQ do SQL używał ciągu połączenia, który jest modyfikowany w czasie wykonywania?
Eksperymentuję z pewnymi trudnościami podczas próby użyciaConnection String Builders (ADO.NET) w LINQ do SQL. Pokażę wam, co próbuję zrobić:
app.config plik:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="LoremIpsum"
connectionString="Data Source=SomeServer;Initial Catalog=SomeDB;User ID=joe;"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
i fragment formularza:
ConnectionStringSettings settings =
ConfigurationManager.ConnectionStrings["LoremIpsum"];
if (null != settings)
{
string connection = settings.ConnectionString;
SqlConnectionStringBuilder builder =
new SqlConnectionStringBuilder(connection);
// passwordTextBox being the control where joe the user actually
// enters his credentials
builder.Password = passwordTextBox.Text;
}
LINQTOSQLDataClassDataContext db = new LINQTOSQLDataClassDataContext();
// finally some rather anecdotic LINQ sentence here:
var foo = db.Table.Single(bar => bar.Table == whatever);
Z drugiej strony sprawdzanieNatychmiastowe okno:
?builder.ConnectionString
"Data Source=SomeServer;Initial Catalog=SomeDB;User ID=joe;Password=swordfish"
Zawsze otrzymuję wyjątek: logowanie nie powiodło się dla użytkownika „joe”. Jakieś pomysły? Z góry dziękuję.