認爲我有我的數據上下文MYDC叫MyObject的對象列表定義如下:更新列表,DB與LINQ到SQL
public class MyObject
{
public int ObjectID {get;set;}
public byte ObjectState {get;set;}
public string ObjectInJson {get;set;}
}
我正在寫一個名爲ObjectsInJsonCache表的查詢;該表的列名與該對象的屬性相同。當我將MyObjects的列表接收到函數中時,如果它不在數據庫中,或者如果它已經存在,那麼我想要插入它。
用於查詢的功能如下:
public static in CreateJsonCache(List<MyObject> TheListOfobjects)
{
int NumberOfObjectsLoaded = 0;
using (MyDCdefinition MyDC = new MyDCdefinition())
{
ObjectsInJsonCache TheTable = new ObjectsInJsonCache();
//do I use a foreach loop?
//how do I switch insert/update?
// this?: MyDC.ObjectsInJsonCache.InsertOnSubmit...
}
return NumberOfObjectsLoaded;
}
我怎樣寫在LINQ到SQL查詢?特別是,如果列表包含1,000個項目,我不會與DB交談1,000次,所以我想知道是否使用foreach循環是要走的路。我需要什麼樣的查詢?一個InsertOnSubmit?
感謝您的建議。
好的,如果我只是做了一個Insert並且已經有一個元素會發生什麼;會跳過還是更新? – frenchie 2011-06-06 22:45:21
@frenchie如果它在你插入的項目上設置了id,並且該項目已經在db中,則將引發異常 – 2011-06-07 09:15:05
嗯,沒有什麼小事。 – frenchie 2011-06-07 12:53:53