【发布时间】:2017-09-04 20:32:59
【问题描述】:
我正在使用 VS 2015 Community、Windows 10、Microsoft SQL 2016 SP1。 我在项目中添加了一个 SQL Server 数据库。然后我在该数据库中添加了一个名为“Dict”的表。
我正在关注this tutorial (at 20:00),它解释了如何将 ADO.NET 与 Visual Studio 一起使用。该视频有点过时,但我按照相同的步骤创建实体模型。但是当我到达 21:01 的部分时,当我尝试访问 context.Dict 时,我的 DbContext 对象(见下文)返回错误。它说没有找到字典的定义。
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
var context = new DictServerEntities1();
var words = context.Dict;
更新:
我导入了一些 Microsoft 提供的示例数据库(称为 Northwind),它们与 EF 一起使用。所以我的表在某种程度上对 EF 无效,我猜是因为它不包含主键。
【问题讨论】:
-
刚刚发现VS 2015上不再使用SQL Server Compact,所以视频已经过时了。显然现在使用 LocalDB。删除关于创建本地数据库的问题。
-
您在 .edmx 模型中看到 Dict 了吗?是不是没有按照 18:13 的说明检查要生成的表?
-
不,但我确实检查了表格。
-
我没有 VS2015,但在保存 .edmx 后,它应该会生成模型和代码(见 18:54)。对我来说,它在 VS2017 中立即起作用。由于上下文已生成,您可能在创建表之前生成了模型。是否出现消息“运行此文本模板可能会损害您的计算机...”并且脚本是否已执行?点击 OK 后,检查 VS 输出窗口的详细信息。
-
我记得出现了文本模板窗口,但我总是在模型之前有表格。输出显示“无法将 XML 保存到配置文件 Web.config”,因为另一个进程正在使用它...
标签: c# sql-server visual-studio entity-framework