之前寫過一個系列文章自己動手寫ORM框架,經過在多個項目的中的使用,對這套代碼進行了許多改進,下面是使用方法:
新增學員信息代碼預覽:
DBHelper db = DBHelper.getInstance(); Student stu = new Student(); stu.Name = "張三"; stu.Gender = "男"; stu.Age = 28; stu.Address = "上海市徐匯區"; int count = db.Save<Student>(stu); if (count > 0) { MessageBox.Show("新增成功!"); }
修改學員信息:
stu.UserID = 1; stu.Name = "李四"; stu.Age = 22; db.Update<Student>(stu);
刪除學員信息:
Student student = m_stuList[i]; //對象刪除 db.Remove<Student>(student); //ID刪除 db.Remove<Student>(student.UserID);
查詢:
//查詢所有學員信息 List<Student> list = DB.FindAll<Student>(); //根據ID查詢 Student student = DB.FindById<Student>(5); //自定義SQL查詢 List<Student> list1 = DB.FindBySql<Student>("SELECT * FROM U_Student WHERE U_Age < 28"); //按某個列查詢 List<Student> list2 = DB.FindBy實體類配置:
namespace Entiry{ [Serializable] [Table(Name = "U_Student")] public class Student { //主鍵 INDENTITY自動增長標識 [Id(Name = "UserID", Strategy = GenerationType.INDENTITY)] public int UserID { get; set; } //對應數據庫中的名字為U_Name [Column(Name = "U_Name")] public string Name { get; set; } [Column(Name = "U_Age")] // int? 允許int為NULL時不會報錯 public int? Age { get; set; } [Column(Name = "U_Gender")] public string Gender { get; set; } [Column(Name = "U_Address")] public string Address { get; set; } [Column(Name = "U_CreateTime")] public DateTime? CreateTime { get; set; } [Column(Name = "ClassID")] public int? ClassID { get; set; } //下面2列 ClassName和Teacher字段是屬于班級表中的班級名稱和班主任 //但是因為是外鍵表,關聯的班級編號:ClassID,所以做關聯查詢可以加這2個屬性 //但是修改和插入則不需要這2列,只做查詢,所以加上IsInsert=false,IsUpdate=false [Column(Name = "ClassName",IsInsert=false,IsUpdate=false)] public string ClassName { get; set; } [Column(Name = "Teacher", IsInsert = false, IsUpdate = false)] public string Teacher { get; set; } }}最后是配置文件:
<configuration> <appSettings> <add key="DbType" value="sqlserver"/> <add key="connectionString" value="Data Source=.;Initial Catalog=OrmDB;User ID=test;PassWord=test;Trusted_Connection=no;Min Pool Size=10;Max Pool Size=100;"/> </appSettings>
只需加連接字符串和數據庫類型,因為支持這里可以支持多種數據庫。
源碼托管在github上,需要的可以去下載。
點擊下載:https://github.com/wangwei123/easy4net
新聞熱點
疑難解答