【问题标题】:Database not working after updating the table in Microsoft Visual Studio在 Microsoft Visual Studio 中更新表后数据库不工作
【发布时间】:2016-03-18 17:26:01
【问题描述】:

我有一个名为 Bookmarks 的数据库表,我更改了表中主键的名称。主要是最初的 id,但我将其更改为 BookmarkId,并且在更新 PK 名称后我似乎无法运行查询。我无法将数据插入到表中。

下面是我的错误的sn-p:

“/”应用程序中的服务器错误。列名“Id”无效。无效的 列名“Id”。说明:期间发生未处理的异常 当前网络请求的执行。请检查堆栈 跟踪以获取有关错误及其起源的更多信息 编码。异常详细信息:System.Data.SqlClient.SqlException: 列名“Id”无效。列名“Id”无效。源错误:

第 40 行:{

第 41 行:db.Bookmarks.Add(bookmark);

第 42 行:db.SaveChanges();

第 43 行:返回 RedirectToAction("Index");

第 44 行:}

第42行出现错误,好像数据无法插入数据库。

这就是我定义数据库的方式:

CREATE TABLE [dbo].[Bookmarks] (
[BookmarkId] INT           IDENTITY (1, 1) NOT NULL,
[carparkId]  INT           NULL,
[date]       DATETIME      NULL,
[username]   NVARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([BookmarkId] ASC),
FOREIGN KEY ([carparkId]) REFERENCES [dbo].[Carparks] ([id])
);

PK 设置为自动递增。

这就是我在控制中实现代码的方式

public ActionResult Create([Bind(Include = "carparkId,date,username")] Bookmark bookmark)
{
    if (ModelState.IsValid)
    {
        db.Bookmarks.Add(bookmark);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

有人知道如何解决这个错误吗?

【问题讨论】:

  • 那么,告诉 EF 关键字段是 BookmarkId,而不是 Id。您配置实体框架的工作。错误很明显 - 它尝试使用名为“Id”的字段。
  • 更新您的实体模型或代码。

标签: c# asp.net-mvc database azure


【解决方案1】:

如果使用 EDMX

然后从 edmx 图表中删除您的表格

然后再次将您的表添加到 edmx

保存,构建并完成:)

【讨论】:

    【解决方案2】:

    如果您使用的是实体框架,那么您需要更新您的 .edmx 文件。打开您的 .edmx 文件,右键单击并从数据库更新模型(如果您采用数据库第一种方法)。

    【讨论】:

      猜你喜欢
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      相关资源
      最近更新 更多