2010-05-16 54 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具有在构造函数中转换字符串的逻辑。