【发布时间】:2017-04-14 06:15:51
【问题描述】:
我将尽可能清楚地解释这个问题。
我从两个项目开始:
项目一:数据模型
包装了具有单个 DbSet 的 DbContext 的存储库类:RentalListings
此 DbContext 使用默认设置,因此当我保存更改时,它会保存到本地 DB。
项目二:控制台应用
包含一个控制台应用程序,该应用程序在运行时会实例化存储库类的一个实例。
然后它会创建多个“RentalListings”并将它们保存到存储库中。
到目前为止一切顺利。运行控制台应用程序后,我检查本地数据库 SQL 对象资源管理器,我的存储库类已成功保存到此数据库。
现在,我想要一种通过 Web API 访问这些插入数据的方法。所以我补充说:
项目三:Web API
我创建了一个新的控制器类并添加了一个 GET 操作方法来获取所有列表。
当我运行 API 项目时,我可以点击 action 方法,如下所示:
[HttpGet]
public IEnumerable<RentalListing> GetAllListings() {
StatsRepository repository = new StatsRepository(new StatsContext());
return repository.GetRentalListings();
}
通过正确的 URL。但是我收到以下错误:
Unable to complete operation. The supplied SqlConnection does not specify an initial catalog or AttachDBFileName.
现在,通过搜索网络,我认为问题在于它不知道如何访问数据库???我应该在我的 Web API 项目的 Web.config 文件中指定一个连接字符串。
问题:
1) 我的控制台应用程序(未指定连接字符串)如何使用我的存储库类创建 mdf 数据库?
2) 为什么我的 web api 项目不能使用相同的方法?它不能像控制台应用一样只使用存储库来获取数据库吗?
期待收到回复,在此先感谢!
【问题讨论】:
标签: c# entity-framework asp.net-web-api