前面講的大多數是原理及說明,你們在理解上會比較枯燥,接下來的幾篇,傾向於實戰,會比較有意思些。框架
這裏的話,仍是拿Users實體類來說解在咱們框架的幾種添加方式。ide
1 Users info = new Users(); 2 info.UserName = "張三"; 3 Users.Data.Insert(info);
1 new Users() { UserName = "張三" }.Insert();
兩種方式均可以實現對數據的添加操做。工具
第二種方式實際也是執行第一種的過程。只不過是作了擴展方法。spa
1 /// <summary> 2 /// 插入數據 3 /// </summary> 4 /// <param name="info">已賦值的實體</param> 5 /// <param name="db">可傳入事務的db</param> 6 public bool Insert(TInfo info, DbExecutor db = null); 7 8 /// <summary> 9 /// 插入數據 10 /// </summary> 11 /// <param name="info">已賦值的實體</param> 12 /// <param name="db">可傳入事務的db</param> 13 /// <param name="identity">標識,剛插入的ID</param> 14 public bool Insert(TInfo info, out int identity, DbExecutor db = null);
上面演示的,實質上是第一個方法。而第二個方法。多了一個參數:out int identity.net
將在插入數據庫時,把自增ID返回到這個參數來。code
須要注意的是:實際上第一種也返回了自增值。只是這個值是放在了 info.ID中。htm
1 // 批量插入數據。(僅支持Sql Server) 2 var lst = new List<Users>(); 3 lst.Add(new Users()); 4 lst.Add(new Users()); 5 lst.Add(new Users()); 6 lst.Add(new Users()); 7 Users.Data.SqlBulkCopy(lst);
當屬性未賦值時,也就是屬性爲null時。是不會產生對應的字段SQL的。
如:
1 new Users() { UserName = "張三" }.Insert();
Users實體實際上還有不少字段,好比PassWord、GenderType、LoginCount等等。
由於咱們沒有對其賦值,則爲null 因此。數據庫是不會對其進行賦值的。也就是等價的SQL爲:
1 insert into Members_User (UserName)Values("張三")
QQ羣:116228666 (Farseer.net開源框架交流) 請註明:Farseer.Net
Farseer.Net是一款ORM框架 + 經常使用工具 + 擴展集合。
Farseer 意爲:先知、預言家 一般在某些場合時,提供計謀、策略。也但願該框架能給你們提供最大化的便捷。
ORM:其英文全稱是:Object(對象) Relational(關係) Mapping(映射)
Farseer.Net的目標是:快速上手、快速開發、簡單方便。
1 new User { ID = 1, Name = "張三" }.Insert()