当前位置: 首页 > news >正文

CoreShop商城框架开启多租户(1)

CoreShop商城框架开启多租户

一、建立 租户表格。

-- 创建租户表
CREATE TABLE LiTenants (Id INT PRIMARY KEY IDENTITY,Code NVARCHAR(50) UNIQUE NOT NULL,Name NVARCHAR(100) NOT NULL,ConnectionString NVARCHAR(500),IsActive BIT DEFAULT 1,CreatedAt DATETIME2 DEFAULT GETDATE()
);

在 表格 SysUser、CoreCmsProducts、CoreCmsGoods 添加列
类似如下:、在这里插入图片描述
或者使用SQL添加列

-- 为现有表添加租户字段 
ALTER TABLE SysUser ADD TenantId INT NOT NULL DEFAULT 1;
ALTER TABLE CoreCmsProducts ADD TenantId INT NOT NULL DEFAULT 1;
ALTER TABLE CoreCmsGoods  ADD TenantId INT NOT NULL DEFAULT 1;

二、生成租户维护部分的代码
1。在后台管理平台生成代码,放到代码放按官网要求放到相应的目录中。
代码生成器文件的使用
代码生成器生成的文件是根据文件名和项目目录默认结构生成的。但实际操作中,根据不同的开发人员会有不同,我们来阐述下代码生成后的文件对应的位置及需要调整的内容。

Controller:对应9.App/CoreCms.Net.Web.Admin/Controllers/
Entity:对应3.Entity/CoreCms.Net.Model/Entities (最后一个文件内,可以根据需求创建文件夹,保持目录更好的阅读性)
Html:对应9.App/CoreCms.Net.Web.Admin/wwwroot/views/
IRepository:对应4.Repository/CoreCms.Net.IRepository/ (最后一个文件内,可以根据需求创建文件夹,保持目录更好的阅读性)
Repository:对应4.Repository/CoreCms.Net.Repository/ (最后一个文件内,可以根据需求创建文件夹,保持目录更好的阅读性)
IServices:对应3.Services/CoreCms.Net.IServices/(最后一个文件内,可以根据需求创建文件夹,保持目录更好的阅读性)
Services:对应3.Services/CoreCms.Net.Services/(最后一个文件内,可以根据需求创建文件夹,保持目录更好的阅读性)
2。 代码生成之后的调整
2。2。1 修改数据列表缓存的key名称,修改的文件在修改数据列表缓存的key名称在CoreCms.Net.Configuration目录之下的GlobalConstVars.cs文件中,在初始化函数中添加以下代码

    public static string LiTenants = "LiTenants"; //多租户表

2。2。2 修改前端html中对于添加,编辑,浏览详情页面的链接
本步骤特别重要,且容易出错,
我们打开代码生成中的index.html文件,找到代码中有3处 view(this.id).render的方法,将其中的 base/类名/edit base/类名/details base/类名/create 修改为对应路径名称即可。
1。

view(this.id).render('base/LiTenants/create', 

改上面的改为

 view(this.id).render('user/LiTenants/create', 

2。

       view(this.id).render('base/LiTenants/edit', { data: e.data }).done(function () {

改上面的代码为:

       view(this.id).render('user/LiTenants/edit', { data: e.data }).done(function () {

3。

 view(this.id).render('base/LiTenants/details', { data: e.data }).done(function () {

改上面的代码为:

 view(this.id).render('user/LiTenants/details', { data: e.data }).done(function () {

2。2。3 生成的代码出现 错误
在这里插入图片描述

原来 CreateAt 的类型出错,在数据库改成 datetime 类型,然后在实体类加上这个列的定义就可能以

三、添加新表格到菜单

1。将已经生成的代码挂靠到后端左侧面板路径。
2。配置好管理权限

http://www.dtcms.com/a/325512.html

相关文章:

  • 下一个排列 的 思路总结
  • OrbStack 入门教程:macOS 上的轻量级容器与虚拟机管理工具
  • macOS 搭建 Gitea 私有 Git 服务器教程
  • Mac配置服务器工具Royal TSX
  • SDI设计中,为何SD-SDI模式下,接收器用DRU实现,在3G-SDI模式下,使用transceiver实现
  • 2508C++,检测S模式
  • Docker 网络-单机版
  • 华为watch5心率变异性测量法的底层逻辑
  • 『“无恙心宽”,梗痛不常』——爱上古中医(12)(健康生活是coder抒写优质代码的前提条件——《黄帝内经》伴读学习纪要)
  • 【C语言】知识详细梳理!共计30万余字!
  • 《 慢 SQL 分析与 SQL 优化实战指南》
  • 用 Docker 安装并启动 Redis:从入门到实战
  • Flutter Provider 状态管理全面解析与实战应用:从入门到精通
  • 帝国理工学院团队研发:Missense3D-PTMdb—— 解析遗传变异与翻译后修饰的交互式工具
  • 基于开源模型构建医疗疾病大模型:从理论到实践
  • 【08】华汉伟业——华汉伟业 嵌入式 C笔试,校招,题目记录及解析
  • 聊天室全栈开发-保姆级教程(Node.js+Websocket+Redis+HTML+CSS)
  • Nginx负载均衡教程:应对网站流量暴增的实战指南 (2025)
  • C#项目上传git常见的忽略项目和推荐配置
  • MySQL,Redis重点面试题
  • SharePlay确保最佳游戏体验
  • [Shell编程] Shell 编程之免交互
  • 【CV 目标检测】①——目标检测概述
  • 每日五个pyecharts可视化图表-line:从入门到精通 (3)
  • 如何网络“钓鱼”,钓鱼鱼饵生成工具CobaltStrike使用
  • LangVM —— 一站式多语言版本管理工具,让 Java、Python、Go、Node.js 切换更丝滑
  • 运维学习Day21——LAMP/LNMP 最佳实践
  • Django Request 与 DRF Request 的区别
  • 从 GPT-2 到 gpt-oss:架构进步分析
  • 企业级 IT 运维服务平台数据备份方案:基于 rsync 的自动化实现