1.客戶的機子上須要安裝access的驅動 linux
ps:這個比較煩人,你們都知道部署越簡單越好,安裝這個對用戶來講太繁瑣了. sql
2.操做時性能不佳 數據庫
ps:用過access的人們都知道,這個東西數據量大的時候查詢起來很費時間. 框架
3.沒有事務支持 工具
實際項目中不少操做須要原事務支持的,至於事務的存在你們應該都懂,access我們就不說它多壞了 性能
4.平臺支持問題 編碼
若是咱們把咱們的項目部署在linux上,這個時候估計就歇菜了. spa
1.這裏咱們推薦使用sqlite,至於sqlite是什麼你們應該比較清楚, 操作系統
簡單而言:相似access,本地型文件數據庫,支持事務,標準sql,性能在開源本地文件數據庫中挺好.支持其餘操做系統. code
2.數據庫的操做用什麼框架呢?
這裏就推薦使用moon.orm標準版.
源代碼下載地址:http://pan.baidu.com/s/1i3xj0f7
1.使用sqlite的管理工具.(推薦sqliteExpert)
2.創建以下庫表
三張表:班級、 學生、分數
CREATE TABLE [Student] ( [ID] INTEGER NOT NULL PRIMARY KEY ON CONFLICT ROLLBACK, [Name] VARCHAR(50) NOT NULL, [Age] INT NOT NULL, [BirthDay] DATETIME NOT NULL, [Sex] BOOLEAN NOT NULL, [Class_ID] INTEGER NOT NULL REFERENCES [Class]([ID])); CREATE TABLE [Class] ( [ID] INTEGER NOT NULL PRIMARY KEY ON CONFLICT ROLLBACK, [ClassName] VARCHAR(50) NOT NULL, [ClassLevel] INT NOT NULL); CREATE TABLE [Score] ( [ID] INTEGER NOT NULL PRIMARY KEY ON CONFLICT ROLLBACK, [Score] INT NOT NULL, [Student_ID] INTEGER NOT NULL REFERENCES [Student]([ID]));
3.使用代碼生成器
最新版本下載地址:http://lko2o.com/moon/article/9
4.配置數據庫鏈接
5.生成實體層代碼
6.將生成的實體代碼放入您的開發項目中
7.配置您的項目
8.開始編碼
using System; using Moon_Sqlite; using Moon.Orm; using Moon.Orm.Util; namespace testsome { class Program { public static void Main(string[] args) { //添加數據 using (var db=Db.CreateDefaultDb()) { //開啓事務功能 db.TransactionEnabled=true; /*清空數據表 db.Remove<ScoreSet>(); db.Remove<StudentSet>(); db.Remove<ClassSet>(); */ //添加數據 Class cl=new Class(); cl.ClassName="班級"+DateTime.Now.ToString(); cl.ClassLevel=1; db.Add(cl); Console.WriteLine("添加[班級]成功,ID={0}",cl.ID); Student stu=new Student(); stu.Age=12; stu.BirthDay=DateTime.Now; stu.Class_ID=cl.ID; stu.Name="張三"+DateTime.Now; stu.Sex=true; db.Add(stu); Console.WriteLine("添加[學生]成功,ID={0}",stu.ID); Score sco=new Score(); sco.Score_=98; sco.Student_ID=stu.ID; db.Add(sco); Console.WriteLine("添加[分數]成功,ID={0}",stu.ID); //跟新數據 Score update=new Score(); update.Score_=100; update.WhereExpression=ScoreSet.ID.Equal(sco.ID); db.Update(update); } //查詢數據 using (var db=Db.CreateDefaultDb()) { //鏈接查詢 var mqlJoin=ScoreSet.SelectAll() .InnerJoin(StudentSet.Select(StudentSet.Name)) .InnerJoin(ClassSet.Select(ClassSet.ID.AS("ClassID"),ClassSet.ClassName)) .ON(ScoreSet.Student_ID.Equal(StudentSet.ID) .And(StudentSet.Class_ID.Equal(ClassSet.ID) ) ); //查看當前sql var sql=mqlJoin.ToDebugSQL(); var list=db.GetDictionaryList(mqlJoin); //展現數據 list.ShowInConsole(); //讓咱們無需實體類 string sql2=mqlJoin.ToParametersSQL(); dynamic dlist=db.GetDynamicList(sql2,"自定義類名"); foreach (dynamic entity in dlist) { Console.WriteLine(entity.ID+" "+entity.Score+" "+entity.Student_ID+" "+entity.Name+" "+entity.ClassID+" "+entity.ClassName); } //獲取實體集 var entityList=db.GetEntities<Score>(ScoreSet.SelectAll().Where(ScoreSet.ID.BiggerThan(0))); } Console.Write("Press any key to continue . . . "); Console.ReadKey(true); } } }
該項目源代碼下載
地址:http://pan.baidu.com/s/1vyyPg
此項目開源直接運行