好用的Rules和MCP
好用的Rulescommon-rulues1234567891011121314151617181920212223242526你是Cursor IDE的AI编程助手,遵循核心工作流(研究->构思->计划->执行->评审)用中文协助用户,面向专业程序员,交互应简洁专业,避免不必要解释。 [沟通守则]1. 响应以模式标签 `[模式:X]` 开始,初始为 `[模式:研究]`。2. 核心工作流严格按 `研究->构思->计划->执行->评审` 顺序流转,用户可指令跳转。 [核心工作流详解]1. `[模式:研究]`:理解需求。2. `[模式:构思]`:提供至少两种可行方案及评估(例如:`方案1:描述`)。3. `[模式:计划]`:将选定方案细化为详尽、有序、可执行的步骤清单(含原子操作:文件、函数/类、逻辑概要;预期结果;新库用`Context7`查询)。不写完整代码。完成后用`interactive-feedback`请求用户批准。4. `[模式:执行]`:必须用户批准方可执行。严格按计划编码执行。计划简要(含上下文和计划)存入`./issues ...
搭建本地 Mino WebApi
搭建本地 Mino WebApi
前言:在实现一个文档管理模块时,前端使用的是Ant Design Blazor框架,使用Upload组件上传文件时,它有个Action属性(具体如下),点击图片上传就会去请求这个接口,完成图片上传到服务器,如果想要不使用Action通过api接口直接上传,官方推荐使用原生的InputFile,我一想,怎么写着写着还倒退了,我个人非常不喜欢,我觉得新出来的东西肯定比老的要好,尤其是在ui这块,于是否决了使用InputFile的方法。
但是我目前所做的项目是一个blazor server项目,他的项目结构主要有两个应用程序,一个是Web,还有个是WebApi,Web下面是前端和后端服务,WebApi下面则是api接口,这是供后面移动端调用的。那在此项目中,最好的办法是将上传接口写在WebApi里面,然后启动的时候需要同时启动两个,这样前端点击上传的时候就可以直接访问WebApi提供的上传接口。但是这个方法有个缺点,就是为了一个Api启动整个WebApi项目,有点高射炮打蚊子的感觉。
想到上传文件这个功能,不仅在当前项目中需要用到,公司的其他三个项目也要用到 ...
实现异地备份阿里云服务器数据库
实现异地备份阿里云服务器数据库项目已开源,在文末
背景:因为商城项目数据每天都会有大量订单,同时数据需要在另一个系统使用。防止数据丢失,提出将数据备份到本地服务器
基本思路:
最简单的方法就是手动将sql脚本复制到本地服务器(麻烦且容易忘记),同时数据库多了更加麻烦,如果单独使用sql管理工具(如navicat),使用传输的话需要用到本地服务器的数据库密码,对其他系统的数据库有威胁。
同时又考虑到无论是阿里云服务器还是本地服务器,都是windows操作系统,同时对C#语言非常熟悉,所以这里直接想用C#开发一个windows服务程序,安装在阿里云服务器上,本地服务器搭建一个ftp站点,设置用户凭证,windwos服务程序定时备份数据库将脚本通过ftp传输到本地服务器。如果是linux操作系统可以构建shell脚本来完成数据库备份及文件传输。
创建windows服务
sc.exe create
sc.exe start
sc.exe stop
如果windows服务启动不成功,可查看时间查看器(event view)查看应用程序可以看到服务启动记录
强制删除window ...
Linq中ToListAsync()和CountAsync()的区别
Linq中ToListAsync()和CountAsync()的区别
背景:一次在实现统计用户收藏数功能时,直接将展示”用户收藏“接口中的查询逻辑照搬下来,然后使用CountAsync()获取数量。结果发现这个数量和点进去查看”收藏“的数量不一样,统计的这个数量变多了,因为数据库有些关联的实体为null。原因在于使用Count操作即使写了Include也不会加载关联实体。
第一个片段包含了.Include,这会增加查询复杂度
第二个片段即使写了.Include也无效(因为Count操作不需要加载关联实体)
12_orderRepository.Query() .Where(o => o.OrderShipping != null && o.OrderShipping.WoodenBoxType != null)
1234_orderRepository.Query() .Include(c => c.OrderShipping) .ThenInclude(os => os.WoodenBoxType) .Where( ...