17-2-23
EF資料庫表一定要有主鍵
【EF實作修改和删除】
ctx.Entry<UserInfoTable>(user).State = System.Data.Entity.EntityState.Modified;
#region 增加操作
/*
//1.執行個體化一個上下文對象
var ctx = new UserInfoEntities();
//2.執行個體化一個模型對象并且給對象指派
UserInfoTable user = new UserInfoTable();
user.UserName = "Futao00";
user.Pwd = "1223";
user.Sex = "男";
user.Tel = "18797811992";
//3.對資料庫進行一個添加操作(告訴EF實體操作的類型curd)
ctx.UserInfoTable.Add(user);
//ctx.UserInfoTable.Remove();
//4.同步到資料庫,這個時候資料庫才會進行curd
ctx.SaveChanges();
*/
#endregion
//修改的時候要指定主鍵的值,隻能根據主鍵進行crud,是以EF的資料表必須設定自己的主鍵
#region 修改删除操作
//1.執行個體化上下文對象
UserInfoEntities dbContext = new UserInfoEntities();
//2.執行個體化實體對象,同時指定對象的主鍵和對象修改之後的值
UserInfoTable userA = new UserInfoTable();
userA.UserName = "Futao"; //指定主鍵
//userA.Tel = "xxx";
//userA.Pwd = "xxx";
//userA.Sex = "xxx";
userA.Sex = "000000";
//3.告訴EF對該對象進行的操作
//dbContext.Entry<UserInfoTable>(userA).State = System.Data.Entity.EntityState.Modified;
//單獨修改某一個屬性的時候要先Attach上
dbContext.UserInfoTable.Attach(userA);
//dbContext.Entry<UserInfoTable>(userA).Property<string>(u => u.Sex).IsModified = true;
dbContext.Entry(userA).Property("Sex").IsModified = true;
//dbContext.Entry<UserInfoTable>(userA).State = System.Data.Entity.EntityState.Deleted;
//4.儲存到資料庫
dbContext.SaveChanges();
#endregion
#region 查詢操作
UserInfoEntities dbContext = new UserInfoEntities();
//周遊所有資料
foreach (var v in dbContext.UserInfoTable)
{
Console.WriteLine(v.UserName + "\t" + v.Pwd + "\t" + v.Sex + "\t" + v.Tel);
}
//按條件查詢Linq
var tempSQL = from u in dbContext.UserInfoTable
where u.Pwd == "123"
select u.UserName + "\t" + u.Pwd + "\t" + u.Sex + "\t" + u.Tel;
//再列印輸出查詢結果
foreach (var x in tempSQL)
{
Console.WriteLine(x);
}
#endregion
補充:實體Entity是什麼,實體與模型Model之間的關系
http://www.cnblogs.com/hellenism/p/3812947.html?utm_source=tuicool&utm_medium=referrallambda表達式
Linq
【課後作業】
(以組為機關打包發送,郵件)
時間:下周一,17-2-27之前
目标:實作課程資訊的增删改查
備注:課程資訊:課程編号(主鍵),課程名稱,授課老師(教師編号),備注
要求:
1.建立資料庫,表
2.建立控制台程式,EF實體模型
3.實作表的增删改查,其中增,删,改提供SQL語句(資料庫Profilter監測到的SQL語句)