https://www.cnblogs.com/gosky/p/5752001.html
遍歷所有實體
//遍歷所有學生 DBSet using (var db = new Entities()) { foreach (var student in db.Student) { ObjectDumper.Write(student.StudentName); } };
說明:打印所有學生的姓名
根據條件查詢
using (var db = new Entities()) { //查詢所有出生日期在1991年1月1日之后的學生 var day = Convert.ToDateTime("1991-1-1"); var students = from v in db.Student where v.Birthday >= day select v; foreach (var student in students) { ObjectDumper.Write(student.StudentName+"-"+student.Birthday); } };
執行結果:
此處注意:使用linq和lamba時,變量一定要提前轉存,不能在linq內部使用C#函數。
錯誤的寫法:
using (var db = new Entities()) { var students = from v in db.Student where v.Birthday >= Convert.ToDateTime("1991-1-1") select v; foreach (var student in students) { ObjectDumper.Write(student.StudentName+"-"+student.Birthday); } };
這樣寫直接就會報錯:
按照生日排序 升序排列(默認)
using (var db = new Entities()) { var students = from v in db.Student orderby v.Birthday select v; foreach (var student in students) { ObjectDumper.Write(student); } };
降序:descending
var students = from v in db.Student orderby v.Birthday descending select v;
查詢單個實體 Find方法
//find查詢單個實體 using (var db = new Entities()) { var student = db.Student.Find(1); ObjectDumper.Write(student); };
說明:根據主鍵查詢Student信息,如果找不到,則返回 NULL
查詢單個實體 Single方法
//Single查詢單個實體 using (var db = new Entities()) { var student = from v in db.Student where v.StudentName=="張三" select v; //single方法 查不到記錄 或者 多條記錄 都會報錯 ObjectDumper.Write(student.Single()); };
說明:調用single方法查不到記錄 或者 多條記錄 都會報錯
查詢單個實體 SingleOrDefault方法
//SingleOrDefault查詢單個實體 using (var db = new Entities()) { var student = from v in db.Student where v.StudentName == "李四" select v; //SingleOrDefault方法 查不到記錄返回null ,如果查詢到多條記錄會報錯 ObjectDumper.Write(student.SingleOrDefault()); };
說明:調用SingleOrDefault方法 查不到記錄放回NULL 如果查詢到多條記錄報錯
完整案例:
//遍歷所有學生 using (var db = new Entities()) { var students = from v in db.Student select v; foreach (var student in students) { ObjectDumper.Write(student); } }; Console.WriteLine("==========按照生日排序==========="); //按照生日排序 升序 using (var db = new Entities()) { var students = from v in db.Student orderby v.Birthday descending select v; foreach (var student in students) { ObjectDumper.Write(student); } }; Console.WriteLine("==========find查詢單個實體==========="); //find查詢單個實體 using (var db = new Entities()) { var student = db.Student.Find(1); ObjectDumper.Write(student); }; Console.WriteLine("==========single查詢單個實體==========="); //Single查詢單個實體 using (var db = new Entities()) { var student = from v in db.Student where v.StudentName=="張三" select v; //single方法 查不到記錄 或者 多條記錄 都會報錯 ObjectDumper.Write(student.Single()); }; Console.WriteLine("==========SingleOrDefault查詢單個實體==========="); //SingleOrDefault查詢單個實體 using (var db = new Entities()) { var student = from v in db.Student where v.StudentName == "李四" select v; //SingleOrDefault方法 查不到記錄返回null ,如果查詢到多條記錄會報錯 ObjectDumper.Write(student.SingleOrDefault()); };