这个文章是我自己在项目过程中使用linq to entity 的一些心得与技巧,可能有点笨拙。
希望有人指出。
1、就是关于筛选重复记录的的方法:
var ll = lanContext.Students.GroupBy(s => new { s.Sex, })
.Select(g => new { g.Key.Sex, count = g.Count() });
List stuList = new List();
foreach (var item in ll)
{
Student student = new Student();
student.Sex = item.Sex;
stuList.Add(student);
}
return stuList;
2、对记录进行多条件查询
List vStudentHomework = lanContext.VStudentHomeworks.ToList();
if (courseID != null)
vStudentHomework = vStudentHomework.Where(a => a.CourseID == courseID).ToList();
if (studentID != null)
vStudentHomework = vStudentHomework.Where(a => a.StudentID == studentID).ToList();
if (publishTime != null)
vStudentHomework = vStudentHomework.Where(a => a.StudentID == studentID).ToList();
if (reviewStyle != null)
vStudentHomework = vStudentHomework.Where(a => a.StudentID == studentID).ToList();
return vStudentHomework;
3、怎么修改数据
lanContext.Entry(item).State = EntityState.Modified;
lanContext.SaveChanges();
4、给连续的数据库操作添加事务
using (TransactionScope trans = new
TransactionScope(TransactionScopeOption.Required))
{
foreach (StuHomeworkDetail item in stuHomeworkDetails)
{
item.ReviewDate = DateTime.Now;
subjectScore += item.TotalScore;
lanContext.Entry(item).State = EntityState.Modified;
lanContext.SaveChanges();
}
}
5、增加数据
foreach (HomeworkDetail item1 in HomeworkDetailList)
{
stuHomeworkDetail.StudentHomeworkID = item.StudentHomeworkID;
stuHomeworkDetail.HomeworkDetailID = item1.HomeworkDetailID;
lanContext.StuHomeworkDetails.Add(stuHomeworkDetail);
lanContext.SaveChanges();
}
最后提出一个问题:就是向数据库添加数据只能使用一个循环一条条的将数据添加到数据,有没有一种办法将list里的数据一下就存储进去。