SQL Server CE データベースをプログラムでバックアップしようとしています。明らかに、これにはデータベース ファイルのコピーが必要です。
私の最初の解決策は次のようになりました。
var connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyEntities"].ConnectionString;
var efBuilder = new System.Data.EntityClient.EntityConnectionStringBuilder(connectionString);
var builder = new System.Data.SqlClient.SqlConnectionStringBuilder(efBuilder.ProviderConnectionString);
var src = builder.DataSource.Replace("|DataDirectory|", System.AppDomain.CurrentDomain.BaseDirectory);
var dest = @"C:\temp\backup.sdf";
// file-copy src to dest here
それから、それは私を襲った:私はここでフープを飛び越えて、とにかくエンティティフレームワークが内部的に行っている機能を複製するだけです(|DataDirectory|
固定パスで置き換えることは言うまでもありません)。
それから私はこれを試しました:
using (var conn = entities.Database.Connection)
{
// conn.Open();
var path = conn.Database;
}
エンティティは私のコンテキストですが、それでも私にしか与えられません:|DataDirectory|\db.sdf
質問: SQL Server CE ファイルへの実際のパスを取得する適切な方法はあります|DataDirectory|
か?
ありがとう!