我正在尝试以编程方式备份我的 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|
替换?
谢谢!