当前位置:Gxlcms > 数据库问题 > 让我们一起用开源数据库和开源框架废弃Access

让我们一起用开源数据库和开源框架废弃Access

时间:2021-07-01 10:21:17 帮助过:3人阅读

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

此项目开源直接运行

让我们一起用开源数据库和开源框架废弃Access

标签:

人气教程排行