ORM-CORM

using System.Collections;

using System.Data;

using System.Data.Common;

using System.Security.Cryptography.X509Certificates;

using System.Text;

using System.Text.Json.Nodes;

namespace ConsoleApp1

{

internal class Program

{

static void Main(string[] args)

{

//Console.WriteLine("Hello, World!");

//DB.table("table").where().eq("name", "").SelectOne();

//DB.table("name", "table").where().eq("name", "").SelectOne();

//DB.table("name", "table").where().group().eq("name", "").eqOR("","").endgroup().SelectOne();

DB.transaction.Connection.BeginTransaction();

//var mm = ( a:"111",cc:"ee");

var aa = new { x = 1, y = 2 };

DB.table("table").primary("id").update(aa);

}

}

public static class DB

{

public static DbTransaction? transaction;

public static SqlBuilder table(string tablename)

{

string sql = "SELECT * FROM" + tablename;

SqlBuilder sqlBuilder = new SqlBuilder(sql);

return sqlBuilder;

}

public static SqlBuilder table(string columns,string tablename)

{

string sql = "SELECT " + columns + " FROM" + tablename;

SqlBuilder sqlBuilder = new SqlBuilder(sql);

return sqlBuilder;

}

}

//public class JsonContent : StringContent

//{

// public JsonContent(object obj) :

// base(JsonConvert.SerializeObject(obj), Encoding.UTF8, "application/json")

// { }

//}

//eq --> ==

//ne --> <>

//lt --> <

//gt --> >

//lte --> <=

//gte --> >=

//in --> in

//notIn --> not in

//like --> like

//notLike --> not like

public class SqlBuilder

{

public SqlBuilder primary(string key)

{

return this;

}

public SqlBuilder update(object obj)

{

//new JsonContent();

//JsonConvert.SerializeObject(obj);

return this;

}

public SqlBuilder insert(object obj)

{

//new JsonContent();

//JsonConvert.SerializeObject(obj);

return this;

}

public string sql { get; set; }

public SqlBuilder(string sqlText)

{

sql = sqlText;

}

public SqlBuilder where()

{

sql += " where 1=1 ";

return this;

}

public SqlBuilder group()

{

sql += " and (1=1 " ;

return this;

}

public SqlBuilder groupor()

{

sql += " or (1=1 ";

return this;

}

public SqlBuilder endgroup()

{

sql += " )";

return this;

}

public SqlBuilder eq(string columnname, string value)

{

sql += " and @" + columnname + "=" + value + " ";

return this;

}

public SqlBuilder ne(string columnname, string value)

{

sql += " and @" + columnname + "<>" + value + " ";

return this;

}

public SqlBuilder lt(string columnname, string value)

{

sql += " and @" + columnname + "<" + value + " ";

return this;

}

public SqlBuilder gt(string columnname, string value)

{

sql += " and @" + columnname + ">" + value + " ";

return this;

}

public SqlBuilder lte(string columnname, string value)

{

sql += " and @" + columnname + "<=" + value + " ";

return this;

}

public SqlBuilder gte(string columnname, string value)

{

sql += " and @" + columnname + ">=" + value + " ";

return this;

}

public SqlBuilder In(string columnname, string value)

{

sql += " and @" + columnname + "in" + value + " ";

return this;

}

public SqlBuilder notIn(string columnname, string value)

{

sql += " and @" + columnname + "not in" + value + " ";

return this;

}

public SqlBuilder like(string columnname, string value)

{

sql += " and @" + columnname + "like" + value + " ";

return this;

}

public SqlBuilder notLike(string columnname, string value)

{

sql += " and @" + columnname + "not like" + value + " ";

return this;

}

public SqlBuilder eqOR(string columnname, string value)

{

sql += " or @" + columnname + "=" + value + " ";

return this;

}

public SqlBuilder neOR(string columnname, string value)

{

sql += " or @" + columnname + "<>" + value + " ";

return this;

}

public SqlBuilder ltOR(string columnname, string value)

{

sql += " or @" + columnname + "<" + value + " ";

return this;

}

public SqlBuilder gtOR(string columnname, string value)

{

sql += " or @" + columnname + ">" + value + " ";

return this;

}

public SqlBuilder lteOR(string columnname, string value)

{

sql += " or @" + columnname + "<=" + value + " ";

return this;

}

public SqlBuilder gteOR(string columnname, string value)

{

sql += " or @" + columnname + ">=" + value + " ";

return this;

}

public SqlBuilder InOR(string columnname, string value)

{

sql += " or @" + columnname + "in" + value + " ";

return this;

}

public SqlBuilder notInOR(string columnname, string value)

{

sql += " or @" + columnname + "not in" + value + " ";

return this;

}

public SqlBuilder likeOR(string columnname, string value)

{

sql += " or @" + columnname + "like" + value + " ";

return this;

}

public SqlBuilder notLikeOR(string columnname, string value)

{

sql += " or @" + columnname + "not like" + value + " ";

return this;

}

public DataTable Select()

{

return null;

}

public DataRow SelectOne()

{

return null;

}

//public Hashtable Select()

//{

// return this;

//}

//public Hashtable SelectOne()

//{

// return this;

//}

}

}

//public class DB

//{

// public string sql { get; set; }

// public DB()

// {

// }

//}

//public static class Ext

//{

// public static SqlBuilder table(this DB db, string tablename)

// {

// SqlBuilder sqlBuilder = new SqlBuilder(db);

// db.sql = "SELECT * FROM" + tablename;

// return sqlBuilder;

// }

//}

相关推荐
醍醐三叶14 分钟前
C++类与对象--2 对象的初始化和清理
开发语言·c++
Magnum Lehar1 小时前
3d游戏引擎EngineTest的系统实现3
java·开发语言·游戏引擎
Mcworld8571 小时前
java集合
java·开发语言·windows
成功人chen某1 小时前
配置VScodePython环境Python was not found;
开发语言·python
海绵宝宝贾克斯儿2 小时前
C++中如何实现一个单例模式?
开发语言·c++·单例模式
史迪仔01122 小时前
[python] Python单例模式:__new__与线程安全解析
开发语言·python·单例模式
isyangli_blog3 小时前
(1-4)Java Object类、Final、注解、设计模式、抽象类、接口、内部类
java·开发语言
三块钱07943 小时前
【原创】基于视觉大模型gemma-3-4b实现短视频自动识别内容并生成解说文案
开发语言·python·音视频
易只轻松熊3 小时前
C++(20): 文件输入输出库 —— <fstream>
开发语言·c++·算法
芯眼3 小时前
ALIENTEK精英STM32F103开发板 实验0测试程序详解
开发语言·c++·stm32·单片机·嵌入式硬件·社交电子