2012-10-14 61 views
1

我有列表這樣的:如何添加字符串列表數據庫C#

var list = new List<string>(); 

這個列表包含了可以說以下的名稱:「肯」,「約翰」,「湯姆」等

我需要這個列表添加到數據庫表中,看起來像這樣:

Id   SecondId    Name 
1   1      Ken 
2   1      John 
3   2      Tom 

哪裏SecondId是次要的關鍵,而信息我已經有了。但我的問題是有沒有更好的方式將所有名稱添加到數據庫,而無需使用foreach循環遍歷列表?任何linq查詢或其他方式,或者我必須迭代通過列表將它們逐個添加到數據庫?

+0

你有沒有嘗試在C#中的字典。密鑰,雙值。把你的代碼放在這裏。因爲你如何知道哪個字符串值爲哪個secondId。 –

+0

@SaroopTrivedi - 基本上SecondId對於每個列表都是靜態的。如果我們有20個名字,就像第一個列表一樣。 SecondId將爲1。而另一個列表,如果我們有50個名字可以說SecondId將是5.我沒有嘗試字典,因爲我在這種情況下思考列表是最合適的。 – NoviceMe

+0

你試試傘庫[http://umbrella.codeplex.com/]它支持LINQ for Lambda Expression。 http://www.markhneedham.com/blog/2008/12/15/cs-lamba-foreach-only-on-lists/ 只要把你的foreach代碼放在這裏。 –

回答

0

我不認爲有一種方法可以將列表添加爲塊。 你可以使用ForEach擴展方法上的列表像這樣(假設你使用的是DbContext訪問數據庫):

using (var context = new NameContext()) { 
    list.ForEach(i => context.Names.Add(new Name(i, SECOND_ID))); 
} 

您可以使用相同的方法,但是使用你的數據庫編寫代碼的lambda表達式內的情況下,你沒有使用DbContext。

相關問題