簡體   English   中英

SubmitChanges()不起作用

[英]SubmitChanges() doesn't work

我不知道這段代碼有什么問題,這段代碼可以成功編譯,但是不會更新數據庫。 我想念一些東西嗎?

DataClassesDataContext db = new DataClassesDataContext();
var query = from p in db.AllPatiences
            select p;
int newID = 1001;
foreach (AllPatience patient in query)
{
    patient.Id = newID.ToString();
    newID++;
}
db.SubmitChanges();

我的猜測是您正在使用項目中的基於文件的數據庫(.mdf),並且正在嘗試查看該數據庫中的表數據。 當您構建項目時,數據庫將被克隆到bin / debug /或bin / release /目錄中,您的運行程序可在其中訪問它。 如果您查看的是此版本的文件,而不是已加載到VS項目中的版本,則應該看到所做的更改。

在這種情況下,應將數據庫文件屬性設置為“僅在更新時復制”或“不復制”,以避免它克隆每個構建數據庫。

是數據庫本身生成的Patient.Id嗎? 可能作為SQL IDENTITY字段? 另外,請檢查dbml文件中該字段的SyncOn屬性。

我發現了問題,對於這樣的Update,必須具有主鍵。 我的表沒有主鍵的原因是:我從Excel文件中導入了這些數據,所以我沒有主鍵。

猜猜,“ Id”是表的主鍵嗎? 如果是這樣,我認為L2S不支持主鍵的更新(我認為這是非常正確的)。 您永遠不要參加更改主鍵的值。

如果Id不是您的主鍵,則我不知道:-P。

暫無
暫無

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

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