我正在閱讀以下復數(shù)教程(https://app.pluralsight.com/library/courses/asp-dot-net-core-restful-api-building/table-of-contents)并嘗試將知識應用于我在制作基本應用程序的同時擁有的現(xiàn)有數(shù)據(jù)庫。1) 我在 AssetRepository 中 AddAsset 的開頭放置了一個斷點。2) 我向我的 API 發(fā)送以下 POST 請求:POST http://localhost:6059/api/assets{ "bay": "X", "tile": "1", "Serialnumber": "SERIAL", "devicename": "DEVICENAME", "assetspecs" : [ { "assetattrid": "SIZE", "numvalue":12 }, { "assetattrid": "POWER", "numvalue":24 } ]} 3) CreateAsset 從 AssetController 運行,AddAsset 從存儲庫通過控制器運行4) 調(diào)試器遇到了 _assetRepository.AddAsset(assetEntity); 并從存儲庫運行 AddAsset5) 就在 AssetRepository.AddAsset 的最后一行執(zhí)行之前,(_context.Asset.Add(asset);) 調(diào)試器告訴我,在進入該行之前,我有一組格式正確且具有唯一 ID 的記錄 - 一切看起來都正常并且應該將其添加到數(shù)據(jù)庫中。6) 我按下 f11 并且調(diào)試器跳轉(zhuǎn)到我的上下文文件并運行 OnConfiguring 和 OnModelCreating 沒有問題,然后返回到它停止的 CreateAsset 控制器操作。7) 我再次按 f11 并檢查 if (!_assetRepository.Save()) 條件,這會引發(fā)接受,告訴我我有一個無效的列名 Assetuid。在應用程序洞察調(diào)試輸出中,列是大寫的,所有其他列都以小寫開頭,這看起來很奇怪。我在這上面花了半天時間,如果有人可以提供幫助,我很茫然。還有一些可能涉及到的文件,我沒有代表,如果您需要進一步查看任何內(nèi)容,請告訴我,謝謝?。。。?
1 回答

嗶嗶one
TA貢獻1854條經(jīng)驗 獲得超8個贊
解決了我的問題。
由于此代碼背后的應用程序使用表的方式,我沒有按照 EFcore 想要的方式執(zhí)行關系,并且我將 ASSETUID 錯誤地設置為關鍵字段。
由于 assetspec 實體沒有 ASSETUID 列,根據(jù)我所做的一些研究,這會導致導航屬性出現(xiàn)問題。
我把PK改成了ASSETNUM;由于兩個實體都將 ASSETNUM 作為屬性,我現(xiàn)在一切都很好!
- 1 回答
- 0 關注
- 320 瀏覽
添加回答
舉報
0/150
提交
取消