データに SQL Server Compact 4.0 (.sdf) を使用するアプリケーションを構築しました。その後、ユーザーは .sdf ファイルをアプリケーションに保存およびロードできるようになります。空の .sdf ファイルを作成するメソッドを構築できました。しかし、私の App.Config には、定義済みの .sdf (Entity Framework) への接続文字列があります。ユーザーが .sdf ファイルをロードできるようにする必要がある場合は、新しく作成された .sdf ファイルに対して機能するように app.config ファイルの接続文字列を設定する必要があります。
新しい .sdf ファイルに対して動作するように Entity Framework を動的に設定するにはどうすればよいですか?
これは、これまでのところ SDF を作成するクラスのコードです。この後、ユーザーは作業するファイルを選択できるはずです。これを設定するにはどうすればよいですか?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlServerCe;
using System.Configuration;
using GLL.Properties;
namespace GLL
{
public partial class LoadDatabaseForm : Form
{
public LoadDatabaseForm()
{
InitializeComponent();
}
private void buttonNew_Click(object sender, EventArgs e)
{
createDatabase();
setConnectionString();
}
private void setConnectionString()
{
ConnectionStringSettings str = System.Configuration.ConfigurationManager.ConnectionStrings["GLLDBEntities"];
MessageBox.Show(str.ConnectionString);
}
private void createDatabase()
{
string connStr = "Data Source = FooDatabase.sdf; Password = SomePassword";
if (File.Exists("FooDatabase.sdf"))
File.Delete("FooDatabase.sdf");
SqlCeEngine engine = new SqlCeEngine(connStr);
engine.CreateDatabase();
SqlCeConnection conn = null;
try
{
conn = new SqlCeConnection(connStr);
conn.Open();
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandText = "CREATE TABLE FooTable(col1 int, col2 ntext)";
cmd.ExecuteNonQuery();
}
catch
{
}
finally
{
conn.Close();
}
}
}
}