pgsql/mysql/sqlserver适配

This commit is contained in:
28810
2018-12-18 20:09:52 +08:00
commit 9b5e34032c
130 changed files with 12283 additions and 0 deletions

View File

@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FreeSql.DatabaseModel {
public class DbColumnInfo {
/// <summary>
/// 所属表
/// </summary>
public DbTableInfo Table { get; internal set; }
/// <summary>
/// 列名
/// </summary>
public string Name { get; internal set; }
/// <summary>
/// 映射到 C# 类型
/// </summary>
public Type CsType { get; internal set; }
/// <summary>
/// 数据库枚举类型int值
/// </summary>
public int DbType { get; internal set; }
/// <summary>
/// 数据库类型字符串varchar
/// </summary>
public string DbTypeText { get; internal set; }
/// <summary>
/// 数据库类型字符串varchar(255)
/// </summary>
public string DbTypeTextFull { get; internal set; }
/// <summary>
/// 最大长度
/// </summary>
public int MaxLength { get; internal set; }
/// <summary>
/// 主键
/// </summary>
public bool IsPrimary { get; internal set; }
/// <summary>
/// 自增标识
/// </summary>
public bool IsIdentity { get; internal set; }
/// <summary>
/// 是否可DBNull
/// </summary>
public bool IsNullable { get; internal set; }
/// <summary>
/// 备注
/// </summary>
public string Coment { get; internal set; }
}
}

View File

@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FreeSql.DatabaseModel {
public class DbTableInfo {
/// <summary>
/// 唯一标识
/// </summary>
public string Id { get; internal set; }
/// <summary>
/// SqlServer下是Owner、PostgreSQL下是Schema、MySql下是数据库名
/// </summary>
public string Schema { get; internal set; }
/// <summary>
/// 表名
/// </summary>
public string Name { get; internal set; }
/// <summary>
/// 表/视图
/// </summary>
public DbTableType Type { get; set; }
/// <summary>
/// 列
/// </summary>
public List<DbColumnInfo> Columns { get; internal set; } = new List<DbColumnInfo>();
/// <summary>
/// 自增列
/// </summary>
public List<DbColumnInfo> Identitys { get; internal set; } = new List<DbColumnInfo>();
/// <summary>
/// 主键/组合
/// </summary>
public List<DbColumnInfo> Primarys { get; internal set; } = new List<DbColumnInfo>();
/// <summary>
/// 唯一键/组合
/// </summary>
public List<List<DbColumnInfo>> Uniques { get; internal set; } = new List<List<DbColumnInfo>>();
/// <summary>
/// 索引/组合
/// </summary>
public List<List<DbColumnInfo>> Indexes { get; internal set; } = new List<List<DbColumnInfo>>();
/// <summary>
/// 外键
/// </summary>
public List<DbForeignInfo> Foreigns { get; internal set; } = new List<DbForeignInfo>();
}
public enum DbTableType {
TABLE, VIEW, StoreProcedure
}
}

View File

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace FreeSql.DatabaseModel {
public class DbForeignInfo {
public DbTableInfo Table { get; internal set; }
public List<DbColumnInfo> Columns { get; internal set; } = new List<DbColumnInfo>();
public DbTableInfo ReferencedTable { get; internal set; }
public List<DbColumnInfo> ReferencedColumns { get; internal set; } = new List<DbColumnInfo>();
}
}