1 日前、単純な Windows フォーム プロジェクト (C#) で Entity Framework CodeFirst の使用を開始しました。2 つのモデルを作成しました。
[Table("SavesSet")]
public partial class Saves
{
public Saves()
{
this.SkillsSet = new HashSet<Skills>();
}
[Key]
public int SaveID { get; set; }
public string Player { get; set; }
public int Age { get; set; }
public int Money { get; set; }
public virtual ICollection<Skills> SkillsSet { get; set; }
}
[Table("SkillsSet")]
public partial class Skills
{
[Key]
public int SkillID { get; set; }
public string Name { get; set; }
public int Value { get; set; }
public int SavesSaveID { get; set; }
public virtual Saves SavesSet { get; set; }
}
次に、Visual Studio データベース エクスプローラー (SqlServerCe 3.5 を使用したローカル データベース) を使用して、データベースに 1 つの行を追加しました。
保存 ID = 1
プレイヤー=「テスト」
年齢 = 1
お金 = 1
また、ListView を使用してフォームを作成し、いくつかのコードを記述しました。
private SavesContext db = new SavesContext();
foreach (Saves s in db.SavesSet.ToList())
{
ListViewItem l = new ListViewItem();
l.Name = s.SaveID.ToString();
l.Text = s.Player;
ListViewSaves.Items.Add(l);
}
しかし、プログラムのデバッグを開始したとき、ListView は空でした。ブレークポイントを設定し、ローカル変数を表示したところ、SavesSet カウントが 0 であることがわかりました。
コードで1行追加しました:
Saves s = new Saves();
s.Player = "TestName";
s.Age = 5110;
s.Money = 200;
db.SavesSet.Add(s);
db.SaveChanges();
そして、ListViewはこれを表示しました。しかし、私のデータベースには何もありませんでした (そしてそのサイズは変わりませんでした)。Visual Studio を再起動しましたが、問題はまだ現実のものでした: ListView にはアイテムが表示されますが、データベースは空でした。App.Config と VS Database Explorer で ConnectionString を確認しました - それらは同じでした。
私の質問は次のとおりです。実際のデータベースを探索するにはどうすればよいですか?また、データベースはどこに保存されますか?
アップデート。
私のDbContext:
public SavesContext()
: base("Saves")
{
}
public DbSet<Saves> SavesSet { get; set; }
public DbSet<Skills> SkillsSet { get; set; }
そして私の App.Config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="TextSim.Properties.Settings.Saves" connectionString="Data
Source=C:\Documents and Settings\My\My Documents\visual studio
2010\Projects\TextSim\TextSim\Saves.sdf"
providerName="System.Data.SqlServerCe.3.5" />
</connectionStrings>
</configuration>