我花了一些时间使用存储库和实体框架设置数据访问层(DAL)。 DAL是与我的ASP.Net MVC 4应用程序在同一解决方案中的独立项目(类库项目)。但是,我无法从ASP.Net MVC 4应用程序访问数据库创建。
我收到以下错误
无法将文件'H:\ Dropbox \ TechCenter \ Visual Studio 2012 \ Projects \ TxValueCardProject \ TxValueCardProject.Presentation \ App_Data \ TxValueCardProject.DataAccessLayer.TxDBContext.mdf'附加为数据库'TxValueCardProject.DataAccessLayer.TxDBContext'。
在我的DAL中我有POCO课程:
public class Customer
{
public int CustomerId { get; set; }
public int RetailerId { get; set; }
public string CustomerName { get; set; }
public string CustomerEmail { get; set; }
public int PointsBalance { get; set; }
public decimal CashBalance { get; set; }
public ICollection<LoyaltyCard> LoyaltyCards { get; set; }
public virtual Retailer Retailer { get; set; }
}
和DBContext类
public class TxDBContext:DbContext
{
public DbSet<Customer> Customer { get; set; }
}
此存储库
public class CustomerRepository : IRepository<Customer>
{
TxDBContext context = new TxDBContext();
public IQueryable<Customer> All
{
get { return context.Customers; }
}
}
使用此设置,一切正常在DAL,我的所有单元测试通过,我可以从SQL MS看到数据库。除非我切换到ASP.Net MVC 4项目和适当的引用和Usings并且一切都成功构建然后我尝试一个简单的DB访问,如此,它失败
namespace TxValueCardProject.Presentation.Controllers
{
public class CustomerController : Controller
{
public ViewResult Index()
{
var custRepo = new CustomerRepository();
var customersInDb = custRepo.All;
return View(customersInDb);
}
View是一个简单的循环语句@foreach (var item in Model)
请帮助,我错过了什么或做错了什么?