阻止实体框架重新创建数据库,但改为使用现有数据库

时间:2014-10-10 11:53:01

标签: c# asp.net-mvc database entity-framework

美好的一天,

到目前为止,我理解EF试图让开发人员在代码优先的范例中工作。我目前在设置方面遇到问题,因为EF希望创建一个数据库 - 而且它被拒绝了。我已经创建了一个数据库,并将生成的数据库连接字符串更改为我希望它连接的位置 - 以及要使用的数据库。

在我的职业生涯中,我没有广泛使用EF,但我发现它对ADO.NET方法的需求越来越大。我已经决定尝试一下。这就是我所拥有的:

连接字符串

<add name="DefaultConnection" connectionString="Data Source=EON-PC\2008;Initial Catalog=Experimental;Integrated Security=true;" providerName="System.Data.SqlClient" />

MVC模型

namespace EFExperiment.Models
{
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Data.Entity;

    [Table("stores")]
    public class Stores
    {
        [Key]
        public string Id { get; set; }

        public string StoreName { get; set; }

        public string AdminEmail { get; set; }

        public string Url { get; set; }
    }

    public class StoreDbContext : DbContext
    {
        public StoreDbContext()
        {
            //Database.SetInitializer<StoreDbContext>(null); //Tried this - also failed. It didn't try to create a database here
        }

        public DbSet<Stores> Stores { get; set; }
    }
}

控制器

namespace EFExperiment.Controllers
{
    using EFExperiment.Models;
    using System.Linq;
    using System.Web.Mvc;

    public class StoresController : Controller
    {
        private StoreDbContext db = new StoreDbContext();

        public ActionResult Index()
        {
            return View(db.Stores.ToList());
        }
    }
}

错误:

CREATE DATABASE permission denied in database 'master'.

现在让我感到困惑的是 - 在打算擦除和重新创建数据库时如何使用EF?我在这里错过了什么吗?我想从我的数据库中的实际表中读取,以及其他CRUD操作 - 每次运行我的应用程序时都不会重新创建它。

0 个答案:

没有答案