使用EF,当使用事物时, SaveChanges()返回了1,但是数据库没有增加任何数据;去掉事物时,却反而添加成功了,why?????
public static int AddTeacherAndUser(Teacher teacher, int[] Roles)
{
int rows = -1;
teacher.IsDelete = 0;
teacher.CreateTime = DateTime.Now;
teacher.UpdateTime = DateTime.Now;
#region 构造用户信息
UserInfo user = new UserInfo
{
UserCode = teacher.Code,
};
user.UserPwd = MD5Helper.EncryptByMD5(MD5Helper.MD5Head_CIDP + teacher.Code);
if (Roles != null)
{
user.Role = string.Join(",", Roles);
}
else
{
user.Role = "";
}
#endregion
using (TransactionScope scope = new TransactionScope())//启用事务
{
using (LeaveEntities db = new LeaveEntities())
{
try
{
db.Teacher.Add(teacher);
db.UserInfo.Add(user);
rows = db.SaveChanges();
}
catch (Exception)
{
scope.Dispose();
//throw;
}
}
}
return rows;
}
我擦,很诡异有木有~