Quick start
Installation
mooSQL is an internal library; packages are published on the internal GitLab. You can obtain the installer from the GitLab project or use other channels.
From GitLab
- Sign in to GitLab and open the u8common project.
- Open the pack6.0.0 folder.
- Run the installer inside to install the published package.
Other channels
- Contact the maintainers to request a package.
- Install when you receive it.
Install or upgrade
- Run the installer from the package and click Execute.
- After installation, right-click the solution root and choose Clean Solution or Rebuild Solution.
- Clean, then rebuild and run the project.
Packages
Overview
- mooSQL.pure — core, minimal dependencies, no dialect definitions.
- mooSQL.Ext — extensions and dialects (databases, JSON, NPOI, etc.).
Most projects reference mooSQL.Ext only.
When searching NuGet, use your local package folder, e.g. C:\Users\Administrator\.nuget\packages (replace the user name on other accounts).
Configuration and integration
mooSQL does not depend on a specific app framework. DB configuration and integration are implemented in your app. The usual pattern is a static DBCash class that loads DB settings and initializes a global DBInsCash instance.
c#
public partial class DBCash
{
private static DBInsCash cash = null;
/// <summary>
/// Get DB instance by index
/// </summary>
/// <param name="position"></param>
/// <returns></returns>
public static DBInstance GetDBInstance(int position) {
if (cash == null) {
initFactory();
}
try {
return cash.getInstance(position);
}
catch(Exception ex)
{
loadDBConfig();
return cash.getInstance(position);
}
}
private static void initFactory() {
var builder= new DBClientBuilder();
var cache = new MooCache();
cash = builder
.useCache(cache)
.useEnityAnalyser(new SugarEnitiyParser())
.doBuild();
loadDBConfig();
}
/// <summary>
/// Get DB instance by name
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static DBInstance GetDBInstance(string name)
{
if (cash == null)
{
initFactory();
}
try
{
return cash.getInstance(name);
}
catch (Exception ex)
{
loadDBConfig();
return cash.getInstance(name);
}
}
private static int loadDBConfig() {
var myConfigs = App.GetOptions<DBCoonfigOptions>();
if (myConfigs != null && myConfigs.Connections !=null && myConfigs.Connections.Count > 0) {
cash.addConfig(myConfigs.Connections);
}
return cc;
}
public static SQLKit useSQL(int position)
{
var db= GetDBInstance(position);
var kit = new SQLKit();
kit.setDBInstance(db);
return kit;
}
public static SQLKit newKit(string name)
{
var db = GetDBInstance(name);
var kit = new SQLKit();
kit.setDBInstance(db);
return kit;
}
public static ITable<T> useEntity<T>(int position) {
var db = GetDBInstance(position);
//var connect = new DataContext(db);
return new Table<T>(db);
}
public static DbBus<T> useBus<T>(int position)
{
var db = GetDBInstance(position);
var connect = new DbContext();
var fac = new EntityVisitFactory();
connect.Factory = fac;
connect.DB = db;
return new EnDbBus<T>(connect,typeof(T), fac);
}
public static BulkTable newBulk(string tableName, int position) {
BulkTable bk= new BulkTable(tableName,GetDBInstance(position));
bk.getBulkTable();
return bk;
}
public static BatchSQL newBatchSQL(int position)
{
var db = GetDBInstance(position);
var kit = new SQLKit();
kit.setDBInstance(db);
var res = new BatchSQL(kit);
return res;
}
public static SooRepository<T> useRepo<T>(int position) where T : class, new()
{
var db = GetDBInstance(position);
return db.useRepo<T>();
}
public static SooUnitOfWork useUnitOfWork(int position)
{
var db = GetDBInstance(position);
return db.useWork();
}
public static SooUnitOfWork useWork(int position)
{
var db = GetDBInstance(position);
return db.useWork();
}
public static SQLClip useClip(int position)
{
var db = GetDBInstance(position);
return db.useClip();
}
}