sqlsugar目前不支持通过code first给达梦建库,但是支持建表。
我是先通过dbeaver建好了数据库,只通过sql sugar的code first建表
1.先创建实体类
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Text;
namespace Database
{
/// <summary>
/// 站台对应关系表
/// </summary>
[SugarTable("tb_stationmapping")]
public class DeviceStation
{
/// <summary>
/// 设备编号
/// </summary>
[SugarColumn(ColumnName = "deviceid", IsNullable = true)]
public string DeviceId { get; set; }
/// <summary>
/// 设备名称
/// </summary>
[SugarColumn(ColumnName = "devicename", IsNullable = true)]
public string DeviceName { get; set; }
/// <summary>
/// 站台GUID
/// </summary>
[SugarColumn(ColumnName = "stationid")]
public string StationId { get; set; }
/// <summary>
/// 站台名称
/// </summary>
[SugarColumn(ColumnName = "stationname")]
public string StationName { get; set; }
/// <summary>
/// 是否启用
/// </summary>
[SugarColumn(ColumnName = "ISAVAILABLE")]
public string Enabled { get; set; }
/// <summary>
/// 站台类型
/// </summary>
[SugarColumn(ColumnName = "stationtype", IsNullable = true)]
public string StationType { get; set; }
/// <summary>
/// 货物编号
/// </summary>
[SugarColumn(ColumnName = "warecode", IsNullable = true)]
public string WareCode { get; set; }
/ <summary>
/ 图层id
/ </summary>
//[SugarColumn(ColumnName = "layerid", IsNullable = true)]
//public string LayerId { get; set; }
/ <summary>
/ 图层对应的层数
/ </summary>
//[SugarColumn(ColumnName = "layernumber", IsNullable = true)]
//public int LayerNumber { get; set; }
}
}
2.在model类文件夹新建类:AppDbContext.cs
3.AppDbContext.cs的主要内容是先连接数据库,然后通过code first建表
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Database.Entity
{
public class AppDbContext
{
public static AppDbContext runInstance;
SqlSugarClient db = new SqlSugarClient(DBBase.config);
public static AppDbContext Instance()
{
if (runInstance == null)
runInstance = new AppDbContext();
return runInstance;
}
public AppDbContext()
{
db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "Server=localhost; User Id=SYSDBA; PWD=123456789;DATABASE=你自己的库;",
DbType = DbType.Dm,//设置数据库类型
IsAutoCloseConnection = true,//自动释放数据库,如果存在事务,在事务结束之后释放。
InitKeyType = InitKeyType.Attribute//从实体特性中读取主键自增列信息
});
db.Aop.OnLogExecuting = (sql, pars) =>
{
Console.WriteLine(sql + "\r\n" + db.Utilities.SerializeObject
(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
Console.WriteLine();
};
}
public void CreateTable(bool Backup = false, int StringDefaultLength = 50, params Type[] types)
{
db.CodeFirst.SetStringDefaultLength(StringDefaultLength);
// db.DbMaintenance.CreateTable();//因为达梦不支持通过sqlsugar建库,取消
if (Backup)
{
db.CodeFirst.BackupTable().InitTables(types);
}
else
{
db.CodeFirst.InitTables(types);
}
}
public SimpleClient<DeviceStation> schoolDb { get { return new SimpleClient<DeviceStation>(db); } }
}
}
4.在项目启动的时候调一下
AppDbContext _autoTable = AppDbContext.Instance();
_autoTable.CreateTable(false, 50, typeof(DeviceStation));
5.去数据库看一下,成功!
参考: