2011-03-11 53 views
0

我想爲我的POS系統設計一個generic Product table,它能夠處理多種類型的細節,例如品牌,類別,類型(無論是服務還是產品)以及其他我不知道的來自不同業務的更多或其他事物。可以LINQ to SQL支持單表繼承嗎?

我已經通過谷歌搜索,似乎這種設計的最佳方法是使用Single Table Inheritancelink

上述說法正確嗎?如果是,LINQ to SQL可以處理單表繼承方法嗎?如果您可以提供一些樣品,我會很感激,因爲我厭倦了爲不同的客戶要求修改和添加表格。

+0

您好我的問題有任何想法?請告訴我,如果我的問題不清楚 – VeecoTech 2011-03-13 12:44:32

+0

您好,有任何建議嗎? – VeecoTech 2011-03-15 03:17:41

回答

1

「單表繼承」模型是LINQ to SQL支持的唯一模型。在這個模型中,您設置了一個鑑別器列(類型),並根據鑑別器的值來指示要創建哪個對象類型。每個實例類型可以具有不同的字段屬性。所有類型未使用的列需要設置爲空,以便在爲給定類型插入其他列時使用空值。

這就是說,我不確定這是您希望從您的聲明中看出您「厭倦了爲不同客戶需求修改和添加表格」的模型。單表方法要求您不僅爲表格添加必要的附加列以獲取新類型,還要生成新類並編譯您的應用程序以滿足這些新要求。

您可能想要查看一個鍵/值對/ NoSql文檔數據庫方法(http://en.wikipedia.org/wiki/Key- value_store#Key- value_store)。使用鍵值模型,您的對象的每個屬性都有單獨的行,其中行由objectId,propertyName和Value組成。這種數據結構允許您在不必更改數據庫架構的情況下擁有任何形狀。不幸的是,沒有內置的機制來獲取靈活的數據模型,並將它們映射到LINQ中的扁平對象。如果需要,可以使用.NET 4中的動態類型來構建它。添加UI和業務邏輯是另一項任務。