0

次のようなコードから接続文字列を使用して、データベースを削除および作成しようとしています。

// NOT WORKING: private ProjectDataSource _dataSource;
private DataContext _dataSource;

public void Initialize ()
{
// NOT WORKING: _dataSource = new ProjectDataSource(connectionString);
_dataSource = new DataContext(connectionString); 
_datasource.DeleteDatabase();
_datasource.CreateDatabase();
}

オブジェクトを使用するDataContextと機能しますが、 の実装を使用するDbContextと機能しません。ProjectDataSource で「シンボル DeleteDatabase を解決できません」というメッセージが表示されます。これはProjectDataSource次のとおりです。

public class ProjectDataSource : DbContext, IProjectDataSource
    {

        public ProjectDataSource() : base("DefaultConnection")
        {

        }

        public ProjectDataSource(string connectionString) : base("connectionString")
            {

            }

        public DbSet<Item> Items { get; set; }


        void IProjectDataSource.Save()
        {
            SaveChanges();
        }

        IQueryable<Item> IProjectDataSource.Items
        {
            get { return Items; }
        }

    }

これを機能させる最良の方法は何ですか?

4

1 に答える 1

1

接続文字列をパラメーターとして受け取るコンストラクターを使用できます。

public ProjectDataSource(string connectionString) : base(connectionString)
{
}

その後:

public void Initialize ()
{
    _dataSource = new ProjectDataSource(connectionString);
    _datasource.Database.Delete();
    _datasource.Database.Create();
}
于 2013-03-01T23:15:01.543 に答える