簡體   English   中英

無法使用Entity Framework更新數據庫中的行…?

[英]Can't update rows in my database using Entity Framework…?

好吧,這真的很奇怪。 我用一個表Customer創建了一個簡單的數據庫,該表有一個Name列。 從數據庫中,我自動生成了一個ADO.NET實體數據模型,並且我正在嘗試向其添加新客戶,如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test
{
    class Program
    {
        static void Main()
        {
            Database1Entities db = new Database1Entities();
            Customer c = new Customer();
            c.Name = "Harry";
            db.AddToCustomer(c);
            db.SaveChanges();
        }
    }
}

但是,它不會將客戶“ Harry”保留到數據庫中! 我一直撓撓了一段時間,想知道為什么這么簡單的操作不起作用。 到底是什么問題!?

EF要求您對許多操作都有唯一的索引。

嘗試將標識字段(主鍵)添加到表中。 刪除並重新創建模型,然后重試。

編輯:

您似乎正在通過控制台應用程序運行它。

  • app.config文件中是否有連接字符串?
  • 您的解決方案中是否有多個項目?
  • 你有什么例外嗎?

編輯2:

接下來的嘗試:

  • 使用SQL Server分析器查看正在發送到數據庫的內容
  • 在編輯器中打開EF模型以查看xml,檢查是否存在任何錯誤

確保數據庫文件的“復制到輸出目錄”屬性未設置為“始終復制”。 如果是這樣,則每次重新構建應用程序時,數據庫都可能被原始副本所破壞。

請參閱: 實體框架未將數據刷新到數據庫

db放在using語句中,以確保在進程退出之前干凈地關閉連接/事務。

好,這是一個遠景。 確定連接字符串指向正確的位置嗎? 連接正常嗎?

您可以通過使用SQL Server Management Studio將一些記錄添加到測試數據庫中進行驗證,然后執行類似的操作

foreach (Customer c in db.Customers)
{
    Console.WriteLine(c.Name);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM