0

既存のすべての質問に記載されている解決策を試しましたが、どれもうまくいきません。アプリケーションを実行し (エラーなしで実行)、(SQL Management Studio を使用して) SQLExpress データベースを確認すると、Code First クラスからテーブルが生成されていないことがわかります。

ここに私の接続文字列があります:

<add name="BSContext" connectionString="Data Source=.\SQLEXPRESS; Integrated Security=SSPI; Initial Catalog=BSDomain; MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

私は Win 8 Pro 64x を使用しており、SQL Express 2012 と共に VS 2012 を使用しています。私の BSContext コードは次のとおりです。

public class BSContext : DbContext
{
    public DbSet<Event> Events { get; set; }
    public DbSet<Location> Locations { get; set; }
    public DbSet<Author> Authors { get; set; }
}

そして、私の application_start() には次のものがあります。

Database.SetInitializer<BSContext>(new EventInitializer());

EventInitializer のコードは次のとおりです。

public class EventInitializer : DropCreateDatabaseAlways<BSContext>
{
    protected override void Seed(BSContext context)
    {
        // Seed Code
    }
}

それでもうまくいきません。

4

2 に答える 2

0

ID フィールドに次の形式を使用していたことが原因であることがわかりました。

private int AuthorID { get; set; }

私が使用していたはずのとき:

private int AuthorId { get; set; }

すべてが動作するようになりました!

于 2013-04-15T09:32:14.103 に答える
0

これを Global.asax の Application_Start() メソッドに追加してみてください。

System.Data.Entity.DropCreateDatabaseAlways<BSContext>());

これにより、アプリを実行するたびにアプリケーションが DB を作成するように強制されるため、明らかにそこに残さないでください。

于 2013-04-12T13:23:05.297 に答える