まず第一に、これを聞いてみましょう:
Seed
自分で設定したときにアクセスできる機能に精通していますInitializer
か?
例:
メイン関数に次のように記述します。
System.Data.Entity.Database.SetInitializer(new SystemContext.SystemInitializer());
SystemContext
あなたのDbContext
クラスはどこですか。
そして、そのクラスでは、次のようなものが必要です。
public class SystemContext : DbContext
{
public DbSet<Stock> Stocks { get; set; }
public DbSet<RawDayValues> StockRawValues { get; set; }
public SystemContext()
: base("Server=localhost;Database=test;Trusted_Connection=True;")
{ }
public class SystemInitializer : DropCreateDatabaseIfModelChanges<SystemContext>
{
#region SEED
// This is what you're looking for!
protected override void Seed(SystemContext context)
{
try
{
var stock = new Stock() { Symbol = "TEST" };
context.Stocks.Add(stock);
context.SaveChanges();
}
catch (Exception ex) { Console.Error.WriteLine(ex.Message); }
base.Seed(context);
}
#endregion
}
}
これは、私がうそをついたプロジェクトのテンプレートコードです。
実際に毎回データベースを再作成しているのであれば、すべてのデータを「手動で」追加せずにデータベースを「シード」する他の方法はわかりません。
一方、データベースの詳細を変更するたびにデータベースを削除する以外のことを計画している場合は、何らかのロジックに従ってすべての新しいデータをクリアする関数を手動で作成する必要があります。
これがあなたの質問に答えることを願っています:)
また:質問でも、話しているテクノロジーのタグも使用していません。私はそれをc#、. netおよびentity-framework-4.3.1であると仮定しました。そうでない場合は、タグを付け直して/指定してください。
良い1日を :)