2009-02-04 61 views
2

LINQ to SQL是否提供開箱即用的多態關聯,因爲ruby在rails活動記錄上的作用?如果沒有,是否有任何解決方法手動映射這些關聯?LINQ to SQL中的多態關聯

回答

2

同意。我發現沒有可能做到這一點,也沒有使用設計師,也沒有手工添加類/方法屬性。而且不可能對多態關聯有外鍵約束。我放棄了這個選項,謝謝。

1

EDITTED

SQL Server將不會讓你有一列,它是不是一個主鍵或沒有它獨特的約束(或指數)外鍵關係。多個表在子表中使用與外鍵相同的列似乎沒有任何限制。 DBML設計器確實會發現這些關係,並且在導入表時將創建與兩個父表的關聯。但是,似乎只會爲其中一個關聯生成設計器生成的代碼。也就是說,設計師正確地顯示了這些關聯,但是其中一個的代碼被省略了。此外,擴展性方法和屬性設置似乎也沒有在設計器生成的代碼中正確定義。

如果您在設計器中手動添加關聯,情況也會如此。代碼中只實現了其中一個實際關聯,而其他父類的代碼似乎無法挽回地被破壞。您可能可以使用部分類實現來添加所需的功能以匹配設計者將生成的內容,但我沒有嘗試過。

此外,LINQ2SQL不支持開箱即用的多對多關係。無需自己編寫代碼,您只能使用1-1和1-many。