linq-to-sql給我這個錯誤「無法對'Table(Friend)'執行創建,更新或刪除操作,因爲它沒有主鍵。「從具有複合主鍵的表格開始linq-to-sql在帶有複合主鍵的表上得到錯誤
回答
LINQ-to-SQL在單個字段int作爲主鍵時表現最佳。如果您有一個複合主鍵,最好的辦法是使用一個整數字段爲該表創建一個代理鍵。
因爲LinqToSql與複合主鍵一起使用,所以您不需要在不合適的時候添加代理整數(例如,如果組合鍵自然強制實現所需的唯一性)。相反,您可以在DBML文件中手動將2列屬性設置爲「Primary Key = True」,並且LinqToSQL將按預期工作。 – 2014-11-25 14:53:41
你絕對正確。您也可以創建代理並在多個列上指定唯一的約束。問題在於您是否希望手動管理組合主鍵或允許LINQ-to-SQL自己管理單個整數鍵。我更喜歡單獨的整數主鍵,主要是因爲我不是複合外鍵的粉絲。你的經驗和喜好可能會有所不同... – 2014-11-25 18:09:19
我完全同意盧克。創建一個代理鍵只是爲了讓Linq能夠快樂地開發SQL並不是一個合理的理由。 – 2016-07-22 05:49:29
- 1. 帶複合主鍵的Laravel種子表
- 2. EF複合外鍵得到錯誤
- 3. 具有複合主鍵的表的錯誤基數
- 4. MySQL主主複製錯誤 - 在Magento重複鍵上插入到
- 5. 帶外鍵的複合主鍵
- 6. 帶複合主鍵的外鍵
- 7. SQL表中有複合鍵和主鍵
- 8. 帶有多個主鍵複合約束的mysql表
- 9. 帶有組合主鍵自動增量一部分的SQL 2008複合主鍵
- 10. 在主鍵上創建複合外鍵
- 11. 帶複合主鍵的SQL請求
- 12. 更改主鍵,但得到的錯誤
- 13. 帶複合鍵/外鍵的映射表
- 14. SQL外鍵的表的複合主鍵
- 15. SQL Server - 表具有複合主鍵
- 16. 現有表上的MySQL中的複合主鍵
- 17. 複合主鍵
- 18. 複合主鍵
- 19. 複合主鍵,
- 20. 複合鍵沒有得到相應ID
- 21. JPA @ManyToMany關係沒有在主表上的主要複合關鍵字
- 22. 錯誤有在引用表上沒有主或候選鍵
- 23. 如何創建複合外鍵的表,複合主鍵
- 24. 橋表的主鍵或複合/複合鍵
- 25. 可以將一個表的複合主鍵用作另一個表上覆合主鍵的一部分嗎?
- 26. 如何構建具有複合主鍵的表的外鍵?
- 27. 在Symfony2上實體具有複合主鍵的表單上多對多
- 28. 與插入到其中選擇上表複合主鍵
- 29. JPA複合外鍵錯誤
- 30. 帶有在MySQL中不工作的外鍵的組合主鍵
沒關係,我同意linq。 – garik 2010-09-17 19:38:45
你是指複合主鍵? – 2010-09-17 19:38:48