2012-12-31 28 views
0

我有一個使用Linq to SQL的winforms應用程序。我的一個數據庫表有這樣的字段...使用存儲在變量中的名稱讀取/寫入實體字段

Area_1 
Area_2 
Area_3... 

我需要能夠在運行時動態訪問這些字段。我有我的一些表格上對應於不同的區域有線按鈕組成,所以我創建這樣一個字符串...

String sField = String.Format("Area_{0}", myAreaNumber); 

,需要能夠讀/寫使用這個特定領域變量。在這個階段,我已經抓住了我需要的實體對象。我怎樣才能使用'sField'變量來讀/寫字段?

+0

您可以閱讀,不能寫,用[動態LINQ(http://weblogs.asp.net/scottgu/archive /2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx)。你不能使用標準的LINQ to sql方法來寫入數據庫嗎? –

+0

我已經更新了我的問題,希望能夠澄清我之後的事情。 – Simon

回答

2

您可以直接使用SqlQuery方法數據庫上運行DbSet原始SQL:

context.YourDbSet.SqlQuery("query string") 
+0

在查詢已經運行後沒有辦法做到這一點嗎?當我有數據集? – Simon

+1

您可以使用['CSharp.CSharpCodeProvider'](http://msdn.microsoft.com/en-us/library/microsoft.csharp.csharpcodeprovider.aspx)作爲代碼即時運行字符串。希望這可以幫助。 – Mangal

相關問題