[LINQ]数据存在时Update,不存在则Insert
最近帮朋友做一个报名站,非常简单,于是拿.NET 3.5特别是LINQ to SQL来练练手。
一切顺利,唯独遇到一个小问题:有些记录,我只想每个用户在数据库中只拥有一条记录,如果数据库中已经存在记录,则用新的内容对原数据UPDATE,没有的话则INSERT。利用异常处理走了个小偏门,感觉不能算是正统的办法,希望哪位看到给指导一下。
代码如下:
1
public partial class Test : System.Web.UI.Page
2
{
3
protected void InsertOrUpdateDate()
4
{
5
GraduateRegisterDataContext context = new GraduateRegisterDataContext(StaticData.ConnectionString);
6
try {
7
// 记录存在,检索后修改ProvinceOf值为2
8
FamilyInfo family = context.FamilyInfo.Single(f => f.NationalId == "3");
9
family.ProvinceOf = "200";
10
}
11
catch (InvalidOperationException inex) {
12
// 记录不存在,触发InvalidOperationException异常,创建新对象后插入
13
FamilyInfo family = new FamilyInfo {
14
Address = "1",
15
ApplyReason = "1",
16
CityOf = "1",
17
NationalId = "3",
18
DistrictOf = "1",
19
FinacialStatus = "1",
20
IsApplyGrant = true,
21
ZipCode = "1",
22
ProvinceOf = "1"
23
};
24
context.FamilyInfo.InsertOnSubmit(family);
25
}
26
finally {
27
context.SubmitChanges();
28
}
29
}
public partial class Test : System.Web.UI.Page2
{3
protected void InsertOrUpdateDate()4
{5
GraduateRegisterDataContext context = new GraduateRegisterDataContext(StaticData.ConnectionString);6
try {7
// 记录存在,检索后修改ProvinceOf值为28
FamilyInfo family = context.FamilyInfo.Single(f => f.NationalId == "3");9
family.ProvinceOf = "200";10
}11
catch (InvalidOperationException inex) {12
// 记录不存在,触发InvalidOperationException异常,创建新对象后插入13
FamilyInfo family = new FamilyInfo {14
Address = "1",15
ApplyReason = "1",16
CityOf = "1",17
NationalId = "3",18
DistrictOf = "1",19
FinacialStatus = "1",20
IsApplyGrant = true,21
ZipCode = "1",22
ProvinceOf = "1"23
};24
context.FamilyInfo.InsertOnSubmit(family);25
}26
finally {27
context.SubmitChanges();28
}29
}



浙公网安备 33010602011771号