dbEntery.Connection.Open();
using (var trains = dbEntery.Connection.BeginTransaction())
{
try
{
foreach (var item in ids)
{
int id = 0;
if (int.TryParse(item, out id))
{
Course_PublicSelectCourse publicSelectCourse = dbEntery.Course_PublicSelectCourse.FirstOrDefault(psc => psc.id == id);
if (publicSelectCourse != null)
{
num = GetNum(startHead, num, dbEntery);//递归方法
string startCode = startHead + num;
publicSelectCourse.courseCode = startCode;
dbEntery.SaveChanges();
num++;
}
}
}
trains.Commit();
result = 1;
}
catch
{
trains.Rollback();
result = -1;
}
finally
{
dbEntery.Connection.Close();
dbEntery.Connection.Dispose();
}
}
private int GetNum(string startHead, int num, ZJGZEntities dbEntery)
{
string startCode = startHead + num;
Course_PublicSelectCourse publicSelectCourse = dbEntery.Course_PublicSelectCourse.FirstOrDefault(psc => psc.courseCode == startCode);
if (publicSelectCourse == null)
{
return num;
}
else
{
num++;
GetNum(startHead, num, dbEntery);
return 0;
}
}
递归方法中的上下文使用传参的方式从主方法中获得,如果重新构造一个会导致运行时内部错误