打开深蓝医生的国庆大礼包!
打開深藍醫(yī)生國慶大禮包,里面是一個orm,我就看看了看這個開源的orm,我覺得很多人應該只看看文章并沒有下載也沒有看源碼,我建議有時間的還是看看好
國慶大禮包地址:節(jié)前送禮:PDF.NET(PWMIS數(shù)據(jù)開發(fā)框架)V3.0版開源
?
深藍醫(yī)生orm源代碼的好處
1: 醫(yī)生的代碼幾乎所有的地方都有注釋,而且是中文的,這是很多國外開源代碼所沒有的,也是很多國內(nèi)開源代碼所沒有的
2 :醫(yī)生的代碼已經(jīng)寫了5年,有很多地方的代碼寫了有注掉了,改為新的代碼,發(fā)現(xiàn)看這樣的代碼還是比較有意思的
3:醫(yī)生的orm是這樣的,開始計劃寫個sqlhelper=》ADO.NEThelper=》queryhelper=》orm
4:我認為,醫(yī)生的代碼是我能看懂的一個開源的項目
5:可以發(fā)現(xiàn)很多問題。。。。。。。。。。。
6:醫(yī)生在博客園,找他方便,在一個群里,找他更方便O(∩_∩)O~
?
醫(yī)生orm的基本增查改
ps:醫(yī)生的demo做了很爛,因為醫(yī)生的哲學沒學好,把orm的特色和orm的基本功能搞反了,demo里面都是特色,而沒有基本功能
sql
CREATE TABLE [dbo].[userinfo]( [id] [int] IDENTITY(1,1) NOT NULL, [username] [nvarchar](50) NOT NULL, [userpassword] [nvarchar](50) NOT NULL, [userbrief] [ntext] NOT NULL, [userimg] [nvarchar](50) NOT NULL, CONSTRAINT [PK_userinfo] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] ? GO用醫(yī)生的工具生成相關的實體類即可
插入demo
protected void Page_Load(object sender, EventArgs e) { ? SuperMarket.userinfo objuserinfo = new SuperMarket.userinfo(); EntityQuery<SuperMarket.userinfo> query = new EntityQuery<SuperMarket.userinfo>(objuserinfo,true); objuserinfo.username = "互聯(lián)網(wǎng)fans"; objuserinfo.userpassword = "1234567"; objuserinfo.userimg = "http://tp2.sinaimg.cn/1271114553/180/5614484664/1"; objuserinfo.userbrief = @"博客園菜鳥級博主,七臉閣主題APP開發(fā)者,專注于WebApp的開發(fā)和研究, 提倡通過命題作文尋找創(chuàng)新的靈感和創(chuàng)意的點子。 新浪應用搜索最新作品:表情帝。"; //query.Save(); // Response.Write(objuserinfo.id); int id= query.Insert(objuserinfo); Response.Write(id); ? ? /*問題1: 這樣寫代碼 無效 SuperMarket.userinfo objuserinfo = new SuperMarket.userinfo(); objuserinfo.username = "互聯(lián)網(wǎng)fans"; objuserinfo.userpassword = "1234567"; objuserinfo.userimg = "http://tp2.sinaimg.cn/1271114553/180/5614484664/1"; objuserinfo.userbrief = @"博客園菜鳥級博主,七臉閣主題APP開發(fā)者,專注于WebApp的開發(fā)和研究, 提倡通過命題作文尋找創(chuàng)新的靈感和創(chuàng)意的點子。 新浪應用搜索最新作品:表情帝。"; EntityQuery<SuperMarket.userinfo> query = new EntityQuery<SuperMarket.userinfo>(objuserinfo,true); query.Save(); Response.Write(objuserinfo.id); * * 問題2: 用save方法統(tǒng)一了insert 和update 不是很習慣 * 問題3: Insert 方法返回整數(shù),很容易誤解,以為返回的是自增id */ ? ? ? ? ? /* User zhang_san = new User(); //zhang_san.Uid = 5; EntityQuery<User> query = new EntityQuery<User>(zhang_san,true ); zhang_san.Name = "張三1"; query.Save();//新增 Console.WriteLine("新增實體對象OK"); zhang_san.Birthday = new DateTime (1977,3,10); query.Save();//修改 Console.WriteLine("修改實體對象OK"); 注:EntityQuery<T>(T,true) 表示當前實體類的持久化方式為“新增”。 * ps 下我學.NET學了好長時間才知道什么叫持久化,但是這個持久化放在rom里面貌似不合適。。。。。 */ }update demo
?
protected void Page_Load(object sender, EventArgs e) { SuperMarket.userinfo objuserinfo = new SuperMarket.userinfo(); //OQL query = new OQL(objuserinfo); ? //OQL result = query.Select().Where(query.Condition.AND(objuserinfo.id, "=", 1)).END; ? //objuserinfo.id = 1; //EntityQuery<SuperMarket.userinfo>.Fill(objuserinfo); //objuserinfo.userbrief = "我修改" + DateTime.Now.ToString(); objuserinfo.id = 1; //EntityQuery<SuperMarket.userinfo> query2 = new EntityQuery<SuperMarket.userinfo>(objuserinfo,false); EntityQuery<SuperMarket.userinfo> query2 = new EntityQuery<SuperMarket.userinfo>(objuserinfo, true); query2.FillEntity(objuserinfo); objuserinfo.userbrief = "我修改" + DateTime.Now.ToString(); //int falg= query2.Save(objuserinfo); ? int falg = query2.Update(objuserinfo); ? ? //List<SuperMarket.userinfo> mylist = EntityQuery<SuperMarket.userinfo>.QueryList(result); // 不知道主鍵情況下 獲取列表? ? /* OQL q = OQL.From(emp) .Select(emp.WorkNumber,emp.EmployeeName) .Where(emp.JobName) .OrderBy(emp.EmployeeName, "asc") .END; List<Employee> list= EntityQuery<Employee>.QueryList(q); */ ? ? ? ? ? ? }select demo
?
protected void Page_Load(object sender, EventArgs e) { //獲取一個實體的信息 SuperMarket.userinfo objuserinfo = new SuperMarket.userinfo(); objuserinfo.id = 1; EntityQuery<SuperMarket.userinfo> query2 = new EntityQuery<SuperMarket.userinfo>(objuserinfo, true); query2.FillEntity(objuserinfo); ? //獲取一個list OQL query = new OQL(objuserinfo); OQL result = query.Select().Where(query.Condition.AND(objuserinfo.id, ">", 1)).END; List<SuperMarket.userinfo> mylist = EntityQuery<SuperMarket.userinfo>.QueryList(result); ? }?
基本 的增改查 OK了
轉載于:https://www.cnblogs.com/qqloving/archive/2012/10/28/2743269.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的打开深蓝医生的国庆大礼包!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SVN Access Manager 0
- 下一篇: Android中网络编程出错