DataContext与DbContext的实现?

时间:2013-03-01 23:10:14

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我正在尝试使用来自以下代码的连接字符串删除和创建我的数据库:

// 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; }
        }

    }

让这项工作最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

你可以让一个构造函数将连接字符串作为参数:

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

然后:

public void Initialize ()
{
    _dataSource = new ProjectDataSource(connectionString);
    _datasource.Database.Delete();
    _datasource.Database.Create();
}