C# 使用SqlSugar根据数据库表结构生成实体类模型
上文主要介绍了使用C#使用SqlSugar来建立数据库连接。但是在实际的操作过程中。如果想通过SqlSugar的数据库连接来进行增删改查来操作数据库。还需要和数据库字段结构对应的C# Model 对象。
如果是手动操作一个一个的去建立实体类将会是非常繁琐的。本文主要介绍通过生成工具,借助SqlSuagr来时间自动化的方法。将数据库中的实体类转换成为C# Entity。
读取数据库的表信息
List<SqlSugar.DbTableInfo> tableInfo = sqlsugar.SqlSugarHelper.GetInstance().GetDataBase().DbMaintenance.GetTableInfoList(false);
IEnumerable<DBTableInfo> list = tableInfo.Select(
(item) => {
return new DBTableInfo() { Name = item.Name, Description = item.Description, IsChecked = false };
});
DataBaseTableInfo = new ObservableCollection<DBTableInfo>(list);
其中DataBaseTableInfo是绑定到wpf上的ObservableCollection对象。是界面展示的数据源。
根据数据源将表结构转换成为C# model 类
var tableList = DataBaseTableInfo.Where((item) => { return item.IsChecked; });
if (tableList == null || tableList.Count() == 0)
{
//MessageBoxR.Waring("未选择数据");
MessageBox.Show("未选择数据");
return;
}
string targetPath = "";
using (var dialog = new FolderBrowserDialog())
{
DialogResult result = dialog.ShowDialog();
if (result == DialogResult.OK)
{
targetPath = dialog.SelectedPath;
}
}
if (!string.IsNullOrEmpty(targetPath))
{
//可以进行转换
string nameSpace = NameSpaceTxt;
foreach (var item in tableList)
{
// var columnInfo = sqlsugar.SqlSugarHelper.GetInstance().GetDataBase().DbMaintenance.GetColumnInfosByTableName(item.Name, false);
var fileName = Path.Combine(targetPath);
sqlsugar.SqlSugarHelper.GetInstance().GetDataBase().DbFirst.Where(item.Name).FormatPropertyName(it=> it.Replace("-","_")).SettingPropertyDescriptionTemplate(old=> {
var n = old;
return "";
}).SettingPropertyTemplate((columns, temp, type) => {
var jsonAttr = "\r\n [JsonProperty(\"{0}\")]"; ;
string att = string.Format(jsonAttr, columns.DbColumnName);
var columnattribute = "\r\n [SugarColumn({0})]";
List<string> attributes = new List<string>();
if (columns.IsPrimarykey)
attributes.Add("IsPrimaryKey=true");
if (columns.IsIdentity)
attributes.Add("IsIdentity=true");
if (attributes.Count == 0)
{
columnattribute = "";
}
var dbStr = temp.Replace("{PropertyType}", type)
.Replace("{PropertyName}", columns.DbColumnName)
.Replace("{SugarColumn}", string.Format(columnattribute, string.Join(",", attributes)));
var result = att + dbStr;
return result;
}).CreateClassFile(fileName, nameSpace);
}
}
这里仅仅描述了。代码的逻辑实现,该工具通过wpf实现界面逻辑。wpf的相关逻辑将会在接下来的文章中分析。
通过上面两端代码就可以将 数据库中的表结构转换成为C#类文件。然后在vs中直接饮用就可以了。
本人从事上位机开发,熟悉 C# WinForm WPF 开发。
联系方式
Tel:17320170935(微信同号-添加请备注微见-KTV)
QQ:472198980 (添加请备注 微见-KTV)
很赞哦! (0)