2011-04-08 77 views
1

我目前正在使用付款提供商。我想從供應商的配置得到了交易表的名稱用在我的LINQ查詢,但理解下面的例子是不可能的:LINQ to SQL - 動態表屬性

[Table(Name = Config.TransactionTable)] 
public class Transaction : ITransaction 
{ 
    .... 
} 

我得到在編譯時下面的錯誤,當我做了以上:

的屬性參數必須是常量表達式,屬性參數類型的typeof運算表達式或數組創建表達式

什麼是這個問題的最佳方法和使用LINQ到SQL到爲什麼我想擺脫這個問題?

回答

0

屬性(TableAttribute)是sealed,它限制了很多選項;然而,LINQ到SQL並沒有綁定到屬性模型 - 還有其他提供者。最值得注意的是,您可能會考慮使用xml模型提供程序,並在運行時生成xml。這是重載構造函數中的MappingSource參數;典型的用法是XmlMappingSource.FromXml(...)或類似的。

但是,核心表在運行時會發生變化,通常看起來並不常見。罕見,但不是不受支持。

僅供參考,默認爲AttributeMappingSource

+0

表結構將保持不變,它只是允許用戶指定他們自己的表名,我需要在我的提供者中提供更多的靈活性。我會進一步研究你的建議選項 - 謝謝。 – ProNotion 2011-04-10 06:16:00