我正在与 ASP.Net MVC 3 一起学习 Code First EntityFramework。起初我的琐碎EFDbContext
类被放在WebUI
mvc 项目的一个Concrete
文件夹中。
public class EFDbContext : DbContext
{
public DbSet<Product> Products { get; set; }
}
它被消耗掉了
public class EFProductRepository : IProductRepository
{
private EFDbContext context = new EFDbContext();
public IQueryable<Product> Products
{
get
{
return context.Products;
}
}
}
在哪里
public interface IProductRepository
{
IQueryable<Product> Products { get; }
}
所以我在根 Web.config 中添加了以下代码:
<connectionStrings>
<add name="WebUI.Concrete.EFDbContext" connectionString="Data Source=HORGH\SQLSERVER2008;Initial Catalog=SportStore;Integrated Security=True;Pooling=False"
providerName="System.Data.SqlClient"/>
</connectionStrings>
它奏效了。
然后我决定把它放到一个单独的Domain
类库项目中。我有一个 App.config 文件。所以我决定把我的连接字符串移到那里,它变成了:
<connectionStrings>
<add name="Domain.Concrete.EFDbContext" connectionString="Data Source=HORGH\SQLSERVER2008;Initial Catalog=SportStore;Integrated Security=True;Pooling=False"
providerName="System.Data.SqlClient"/>
</connectionStrings>
但最终EF 不再看到它。
EFProductRepository
并使用其根文件夹EFDbContext
移至项目。所以调用构造函数的代码在,即在项目中。Domain
Concrete
EFProductRepository
Domain
我试图将 App.config 重命名为 Web.Config;试图将连接字符串返回到WebUI
项目的 Web.config。它也不起作用。
我究竟做错了什么?