string de conexão SubSonic para SQLite
-
03-07-2019 - |
Pergunta
Eu estou escrevendo um aplicativo de desktop que precisa de uma camada de persistência simples - eu descobri sobre SubSonic e da capacidade de trabalho com SQLite. No entanto eu preciso para manter o arquivo de banco de dados na pasta AppData do usuário e não sabem como colocar esse valor em app.config - Eu não quero usar caminhos absolutos
.Pode app.config alguma forma variáveis ??acesso enviroment ou pasta de dados do aplicativo de referência?
Solução
Não há nenhuma maneira para especificar a pasta AppData no app.config para uma seqüência de conexões.
Mas o que você pode fazer é escrever o valor para o arquivo de configuração, quer durante a instalação ou quando o aplicativo é executado pela primeira vez.
Outras dicas
Para v2.x subsônico eu iria ignorar a seqüência de conexão app.config e apenas configurá-lo em tempo de execução antes de trabalhar com o banco de dados. estadias o nome do fornecedor do mesmo, é claro.
string dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"MyApplication\Northwind.db3");
DataService.Providers["Northwind"].DefaultConnectionString =
String.Format(@"Data Source={0};Version=3;New=False;Connection Timeout=3", dbPath);
O "caminho-quadro" de encontrar appdata é usar Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData)
Isto irá encontrar o caminho AppData correta, independentemente da plataforma.
Existem várias maneiras se você estiver usando ASP.NET, em qualquer idioma
Server.MapPath ( "~") irá retornar a raiz do aplicativo como um nome de caminho completo, em seguida, você pode simplesmente adicionar "/ app_data" a ele para começar estiver caminho completo.
Como alternativa inspecionar o HttpContext.Current.Request e HttpContext.Current.Application existem inúmeros (e muito melhor, então o que eu acabei de mencionar) propriedades que irão fornecer-lhe com a mesma pasta -. sendo a raiz da aplicação como s caminho completo
Note que estes devem trabalhar mesmo se você tiver o aplicativo como uma pasta virtual e uma pasta regular com uma configura aplicativos no IIS em que pasta ??p>
No entanto, isto só é possível em tempo de execução, de modo que não pode realmente ser mencionado no app. você pode tentar usar caminhos relaltive de onde o app.config é residente IE "../App_Data" ou '/ App_Data', mas não tenho certeza de que você está necessidades exatas.
Boa sorte