#region
using System;
using System.Data;
using CSFrameworkV5.Core;
using CSFrameworkV5.Core.CodeGenerator;
using CSFrameworkV5.Models;
///*************************************************************************/
///*
///* 文件名 :dalMenu.cs
///* 程序说明 : 菜单数据字典的DAL层
///* 原创作者 :www.csframework.com
///*
///* Copyright 2006-2021 wwww.csframework.com, 保留所有权利.
///*
///**************************************************************************/
#endregion
namespace CSFrameworkV5.DataAccess
{
///
/// 菜单数据字典的DAL层
///
[DefaultORM_UpdateMode(typeof(tb_MyMenu), true)]
public class dalMenu : dalBaseDataDict
{
public dalMenu(Loginer loginer)
: base(loginer)
{
_KeyName = tb_MyMenu.__KeyName;
_TableName = tb_MyMenu.__TableName;
_ModelType = typeof(tb_MyMenu);
_Database = DatabaseProvider.SystemDatabase;
}
///
/// 根据表名获取该表的SQL命令生成器
///
/// 表名
///
protected override IGenerateSqlCommand CreateSqlGenerator(
DataTable table)
{
Type ORM = null;
if (table.TableName == tb_MyMenu.__TableName)
ORM = typeof(tb_MyMenu);
if (table.TableName == tb_MyFormTagName.__TableName)
ORM = typeof(tb_MyFormTagName);
if (ORM == null) throw new Exception(table.TableName + "表没有ORM模型!");
//支持两种SQL命令生成器
return new GenerateSqlCmdByTableFields(ORM, table,
GeneratorFactory);
}
///
/// 根据菜单名删除
///
/// 菜单名, menuName
///
public override bool Delete(string keyValue)
{
var sp = _Database.CreateSqlProc("usp_DeleteMenu");
sp.AddParam("MenuName", DbType.String, keyValue);
sp.AddParam("DataSetID", DbType.String, _Loginer.DBID);
var i = _Database.ExecuteCommand(sp.Command);
return true;
}
public override DataTable GetDataDictByTableName(string tableName)
{
if (string.IsNullOrEmpty(tableName)) throw new Exception("表名不能为空!");
var sql =
$"SELECT * FROM {tableName} WHERE DataSetID={_Database.ParamSymboName}DataSetID ORDER BY ModuleID";
var cmd = _Database.CreateCommand(sql);
cmd.AddParam("DataSetID", _Loginer.DBID);
return _Database.GetTable(cmd.Command, TableName);
}
public DataTable GetMenuPicker()
{
var sql =
$"SELECT ModuleID,MenuName,MenuCaption FROM tb_MyMenu WHERE DataSetID={_Database.ParamSymboName}DataSetID AND MenuCaption<>{_Database.ParamSymboName}MenuCaption ORDER BY ModuleID";
var cmd = _Database.CreateCommand(sql);
cmd.AddParam("DataSetID", _Loginer.DBID);
cmd.AddParam("MenuCaption", "-");
return _Database.GetTable(cmd.Command, TableName);
}
public override DataTable GetSummaryData()
{
AssertTableName();
var sql =
$"SELECT * FROM {TableName} WHERE DataSetID={_Database.ParamSymboName}DataSetID ORDER BY ModuleID";
var cmd = _Database.CreateCommand(sql);
cmd.AddParam("DataSetID", _Loginer.DBID);
return _Database.GetTable(cmd.Command, TableName);
}
}
}