前景:要操作的数据表必须添加主键(方式:进入数据库-->数据表名-->设计-->列名右键-->设置主键)
1)、项目名右键-->新建项-->ADO.NET数据模型
选择第一个“来自数据库的EF设计器”就行
2)、操作数据表的增删改查
这个对象可以声明成全局的上下文
StudentEntities dbContext = new StudentEntities();
2.1)、增
Students stu = new Students();
stu.StudentName = "李四";
stu.StudentSex = "男";
stu.StudentAge = 19;
stu.StudentProvince = "上海";
stu.StudentPhone = "17468523001";
//写法一:
//dbContext.Students.Add(stu);
//写法二:
dbContext.Entry<Students>(stu).State = System.Data.Entity.EntityState.Added;
//告诉上下文把实体的变化保存到数据库里面去,返回受影响行数
int i = dbContext.SaveChanges(); //三元表达式
string str = i == 1 ? "添加成功" : "添加失败";
Console.WriteLine(str);
2.2)、删
Students stu = new Students();
stu.StudentNO = 1833200159;
dbContext.Entry<Students>(stu).State = System.Data.Entity.EntityState.Deleted;
int i = dbContext.SaveChanges();
string str = i == 1 ? "删除成功" : "删除失败";
Console.WriteLine(str);
2.3)、修改整条数据
Students stu = new Students();
stu.StudentNO = 1833200160;
stu.StudentName = "露丝";
stu.StudentAge = 0;
stu.StudentSex = "女";
stu.StudentProvince = "";
stu.StudentPhone = "";
//将当前实例附加到上下文来处理
dbContext.Students.Attach(stu);
//写法一:
//这里修改了名字和性别,因为其他的属性字段是不可空的所以为了通过验证必须
//赋值(赋上了任意的值,但是我们并没有保存这些更改)
//dbContext.Entry<Students>(stu).Property("StudentName").IsModified = true;
//dbContext.Entry<Students>(stu).Property("StudentSex").IsModified = true;
//写法二:Lambda表达式
dbContext.Entry<Students>(stu).Property<string>(s => s.StudentName).IsModified = true;
dbContext.Entry<Students>(stu).Property<string>(s => s.StudentSex).IsModified = true;
int i = dbContext.SaveChanges();
string str = i == 1 ? "修改成功" : "修改失败";
Console.WriteLine(str);
2.4)、查询整张数据表
foreach (var item in dbContext.Students)
{
//打印整张表的学号和姓名
Console.WriteLine("学号: " + item.StudentNO + " 姓名: " + item.StudentName);
}
2.5)、Linq表达式按条件查询数据
//查询整张表女生的信息
var temp = from s in dbContext.Students
where s.StudentSex == "女"
select s;
foreach (var item in temp)
{
//打印女生的信息
Console.WriteLine(item.StudentName);
}