2010-05-16 57 views
0

一個專欄中,我有一些類構造本身的字符串,像這樣:存儲對象作爲LINQ

CurrencyVector v = new CurrencyVector("10 WMR/20 WMZ"); 

它實際上是持有多種貨幣值的一類,但它並沒有多大關係。

我需要改變我的LINQ表中的字段類型(在vs 2010設計器中)從String到那個類CurrencyVector。

如果我這樣做 - 當LINQ運行時試圖將String轉換爲CurrencyVector(從數據庫填充表時)時,我得到運行時錯誤。 添加IConvertible沒有幫助。

我將這些列包裝在屬性中,但它是醜陋而緩慢的解決方案。 搜索互聯網沒有結果。

+0

我假設你正在使用LINQ to SQL? – 2010-05-16 23:01:22

+0

您是否擁有對數據庫架構的控制權? SQL Server 2005或2008中的數據庫是?如果你對這兩個問題的回答都是「是」,那麼你是否考慮過使用.NET管理的UDT作爲數據庫列?看到這個答案的更多細節:http://stackoverflow.com/questions/935315/return-clr-sql-server-udt-from-sql-server-to-client-app – 2010-05-16 23:09:59

回答

0

您可以隨時擴展該類並創建返回該對象的另一個屬性。像這樣(僞代碼)

public partial class MyLinqEntity { 
    public CurrencyVector CurrencyVector { 
     get { 
      return new CurrencyVector(this.ColumnHoldingCurrencyVector); 
     } 
    } 

} 

其中CurrencyVector具有在構造函數中轉換字符串的邏輯。