0
ここでは、私に有効なクライアントを返すフォームがあり、localDatabaseとsaveChanges()に追加しようとしましたが、アプリケーションを閉じた後にデータはデータベースに残りません。Entity Frameworkはデータベースにデータを保持しません
FacturationAppContext db;
public Form1()
{
InitializeComponent();
db = new FacturationAppContext();
}
private void addNewClient(object sender, EventArgs e)
{
AddClient frmAdd = new AddClient();
frmAdd.ShowDialog(); //form that returns a valid Client
if (frmAdd.newClient != null)
{
db.Clients.Add(frmAjouter.newClient);
db.SaveChanges();
}
}
メソッドで直接クライアントを作成しても、データ(クライアント)はアプリケーションを閉じた後もデータベースに残りません。
編集:ここに私のコネクション文字列です:
<connectionStrings>
<add name="FacturationAppContext" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\CycloneFacturation.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
おかげで、チャールズ
を使用して、コンテキスト名前を覚えていないローカルデータベースのプロパティで "COPY ..."プロパティを "if new .."に変更します。 –
コードはわかりました。追加しているのと同じデータベースにクライアントが存在していることを確認していますか?おそらく接続文字列をチェックして、確かめてください。私は 'FracturationAppContext'を' addNewClient'の中の 'using'ブロックに割り当てようとします。接続がぶら下がっていない方が良いです。後でパフォーマンスを最適化する必要がある場合は、リソース管理の影響を考慮する必要があります。 – Jim
それはデータベースにデータを追加するように見えますが、アプリケーションがアクティブになるまでのみです。 私は接続文字列を追加しますが、私はかなり良いと確信しています – Charles