2017-10-05 5 views
0

私は、エンティティフレームワーク、ビジュアルスタジオ、および.netを初めて使用しています。私はdbテーブルのためのモデルを作成しました(コードの最初の慣習を使用して)。私は、移行を実行し、テーブルを更新しましたそれはうまく動作します挿入し、テーブル内のエンティティを取得しますが、ときどき私のテーブルとテーブルのデータが消えてしまう。 update-databaseコマンドを実行して、テーブルを再度生成する必要があります。 dbテーブルを消失させる理由は何でしょうか。私のコードに存在する移行スクリプトがここにありますここに私のLMSSeedDataクラスがあるdbテーブルがコード内で自動的に消滅する最初のエンティティフレームワーク

public class LMSSeedData : DropCreateDatabaseAlways<LMSDBContext> 
{ 
    protected override void Seed(LMSDBContext context) 
    { 

     base.Seed(context); 
    } 
} 

がコンテキストクラスで、ここで

public class LMSDBContext : IdentityDbContext<ApplicationUser, CustomRole, int, CustomUserLogin, CustomUserRole, CustomUserClaim> 
{ 
    public LMSDBContext() 
     : base("LMSDBContext") 
    { 



     Database.SetInitializer(new DropCreateDatabaseAlways<LMSDBContext>()); 

    Database.SetInitializer<LMSDBContext>(new MigrateDatabaseToLatestVersion<LMSDBContext, Migrations.Configuration("LMSDBContext")); 

     this.Configuration.LazyLoadingEnabled = true; 
    } 
    } 

は私のpackages.configファイル

<packages> 
<package id="Edi.Web.MvcExtensions" version="5.2.3.1" 
targetFramework="net461" /> 
<package id="EntityFramework" version="6.2.0-beta1" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Identity.EntityFramework" version="2.2.1" targetFramework="net45" /> 
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net461" /> 
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net461" /> 
    <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net461" /> 
    <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net461" /> 
</packages> 

答えて

0

はあなたのDbContextを表示することができますですクラスとマッピングクラス?私たちはそれらがなければ推測することができます。初期化子は、それが実行されるたびにドロップし、データベースとテーブルを再作成します

public class DbInitializer : DropCreateDatabaseAlways<YourContextName> 
{ 
    protected override void Seed(YourContextName context) 
    { 
     // seed database here 
     ...... 
    } 
} 

は、あなたがこのような任意のデータベースシーダを持っています。

現在のデータベースの初期化戦略についての詳細を読むことができます:http://www.entityframeworktutorial.net/code-first/database-initialization-strategy-in-code-first.aspx

を使用すると、データベースとテーブルを再作成したくない場合は、代わりに使用DropCreateDatabaseIfModelChangesを試してみてください。

また、コードを投稿していないので、クラスと設定がどのようなものかわかりません。

+0

ys私はこれらの2つのクラスを持っています – Asad

+0

私は*データベース*が消えているとは思わないが、説明は適切な答えを与えるために曖昧です。 –

+0

私はランダムな動作で消えた2つのテーブルを何度も更新データベースを実行する必要があります。私を助けてもらえますか? @GertArnold – Asad

関連する問題