首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Entity Framework AddObject 無法使用?實為工具版本問題

     編輯:程式設計綜合問答

現象

db.reviews.AddObject(du); // 報錯:找不到 AddObject 方法
db.SaveChanges();

原因分析

  • EF 4.0 (ObjectContext API) 使用 AddObject。
  • EF 5.0+ / EF Core (DbContext API) 使用 Add / AddAsync。
  • 項目引用的 EF 版本與代碼 API 不匹配,或 Visual Studio 實體模型生成代碼版本不一致。

解決方案

  1. 統一 API 風格:檢查上下文類繼承自 ObjectContext 還是 DbContext。
    • ObjectContext → AddObject("EntitySetName", entity)
    • DbContext → DbSet<T>.Add(entity) 即 db.Reviews.Add(du)
  2. 刷新 EDMX 模型:右鍵 .edmx →「從數據庫更新」→ 保存,重新生成上下文代碼。
  3. 清理構建緩存:Clean Solution → Rebuild,或刪除 bin/obj 重新構建。

刪除操作對應

// ObjectContext
db.DeleteObject(entity);
db.SaveChanges();

// DbContext
db.Reviews.Remove(entity);
db.SaveChanges();

用戶反饋:「好像是我的開發工具有問題,已解決」——通常是版本混淆導致。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved