认为我有我的数据上下文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