美好的一天,
到目前为止,我理解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操作 - 每次运行我的应用程序时都不会重新创建它。