新建API项目
生成API项目的目录结构
Controllers文件夹下的TestController的命名决定访问url的路径
比如图中TestComtroller.cs 访问的路径就为https://127.0.0.1:5001/api/test
首先在TestComtroller.cs 写自己的业务逻辑
无法索引到其他项目中的模块
需要在依赖项中添加引用
注意:好像是我下载的编辑器有问题,第一次勾选的引用可以正常使用,第二次就不行
所以 尽量在第一次勾选的时候就把所以项都勾选了 以防之后要使用
生成项目尝试运行
遇到一些预下载的依赖项不兼容问题,我把这些依赖项全部删除以后可以正常运行项目
注意安装版本 版本过高会导致不兼容问题
然后重新生成继续运行
无法获取数据 原因是没有进行数据库连接配置
这三个文件全部都要配置,不懂就全部复制
再次重新生成,再次运行
[TttpGet("这个参数决定url路径")]
配置url访问为action也就是对应方法名 MVC中默认为action可以不用配置
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Dledc.Application.SysDataAcquisition;
using Dledc.Code;
using Dledc.Domain.Entity.SysDataAcquisition;
using Dledc.Domain.IRepository.SysDataAcquisition;
using Dledc.Repository.SysDataAcquisition;
using Microsoft.AspNetCore.Mvc;
namespace DataAcquisition.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class DataAcquisitionController : ControllerBase
{
// GET api/values
// 导入数据集 此时的service就是SysDataAcquisition这张表对应的数据集对象
private ISysDataAcquisitionRepository service = new SysDataAcquisitionRepository();
// 导入CRUD的方法 在Controller模块中进行调用
private SysDataAcquisitionApp sysDataAcquisitionApp = new SysDataAcquisitionApp();
// GET api/values
// GET 数据插入
[HttpGet("action")]
// 获取插入数据 ID为自增字段
public ActionResult<string> Insert(string UserId, string Model, string SysCode, string EqpCode, string Ip, string EXT)
{
// 获取SysDataAcquisition实体
SysDataAcquisitionEntity sysDataAcquisitionEntity = new SysDataAcquisitionEntity
{
// 对实体进行赋值
UserId = UserId,
Model = Model,
SysCode = SysCode,
EqpCode = EqpCode,
Ip = Ip,
EXT = EXT,
CreatorTime = DateTime.Now
};
// 将实体添加进数据集
service.Insert(sysDataAcquisitionEntity);
// 返回值
return Content("提交成功");
}
[HttpGet("action")]
public ActionResult<string> Select(string keyword)
{
// 调用App中的GetList方法 获得满足条件的数据列表 无keyword时返回表中所有数据 列表形式保存
var data = sysDataAcquisitionApp.GetList(keyword);
// 将数据转换成json数据返回
return Content(data.ToJson());
}
[HttpGet("action")]
public ActionResult<string> Delete(int keyword)
{
// 调用App中的Delete方法
sysDataAcquisitionApp.Delete(keyword);
return Content("删除成功");
}
[HttpGet("action")]
// 获取数据,最主要的是keyword作为唯一主键进行查询找到所需要修改的那条数据
public ActionResult<string> Update(int keyword, string UserId, string Model, string SysCode, string EqpCode, string Ip, string EXT)
{
// 调用App中的SubmitForm方法
sysDataAcquisitionApp.SubmitForm(keyword, UserId, Model, SysCode, EqpCode, Ip, EXT);
return Content("修改成功");
}
}
[HttpPost]
//[HandlerAjaxOnly]
// 请求伪造
[ValidateAntiForgeryToken]
public ActionResult SubmitForm(AreaEntity areaEntity, string keyValue)
{
try
{
// 通过判断是否传递keyValue来确认用户操作是新建还是修改
if (!string.IsNullOrEmpty(keyValue))
{
// 调用SubmitForm用户数据修改函数
areaApp.OldSubmitForm(areaEntity, keyValue);
return Success("操作成功");
}
else
{
调用GetList用户信息函数
//var data = areaApp.GetList();
生成用户信息存储列表
//var treeList = new List<TreeSelectModel>();
//foreach (AreaEntity item in data)
//{
// // 将用户名加入存储列表
// TreeSelectModel treeModel = new TreeSelectModel();
// treeModel.text = item.F_FullName;
// treeList.Add(treeModel);
//}
将from表单数据里的名字和list列表里存储的用户名做判断
Count计数
//int nCount = treeList.Count(t => t.text == areaEntity.F_FullName);
AreaEntity ue = service.FindEntity(t => t.F_FullName == areaEntity.F_FullName);
if (ue != null)
{
return Success("操作失败,已有同名的数据对象。");
}
else
{
// 调用SubmitForm用户数据提交函数
areaApp.NewSubmitForm(areaEntity);
return Success("操作成功");
}
}
}
catch (Exception ex)
{
throw (ex);
}
}
}
using Dledc.Code;
using Dledc.Domain.Entity.SysDataAcquisition;
using Dledc.Domain.IRepository.SysDataAcquisition;
using Dledc.Repository.SysDataAcquisition;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Dledc.Application.SysDataAcquisition
{
public class SysDataAcquisitionApp
{
// 导入数据集 此时的service就是SysDataAcquisition这张表对应的数据集对象
private ISysDataAcquisitionRepository service = new SysDataAcquisitionRepository();
// 查询url
public List<SysDataAcquisitionEntity> GetList(string keyword = "")
{
// 根据实体类机构生成查询语句
var expression = ExtLinq.True<SysDataAcquisitionEntity>();
// 判断是否传递keyword 没有的传递就不执行筛选逻辑
if (!string.IsNullOrEmpty(keyword))
{
expression = expression.And(t => t.UserId.Contains(keyword));
expression = expression.And(t => t.Model.Contains(keyword));
expression = expression.Or(t => t.SysCode.Contains(keyword));
expression = expression.Or(t => t.EqpCode.Contains(keyword));
expression = expression.Or(t => t.Ip.Contains(keyword));
expression = expression.Or(t => t.EXT.Contains(keyword));
}
// 返回一个以ID升序排列的列表
return service.IQueryable(expression).OrderBy(t => t.ID).ToList();
}
// 删除url
public void Delete(int keyword)
{
// 删除条件为ID等于传入keyword的那条数据
service.Delete(t => t.ID == keyword);
}
// 修改url
public void SubmitForm(int keyword, string UserId, string Model, string SysCode, string EqpCode, string Ip, string EXT)
{
// 在数据集中找到ID为传入值的那条数据 并让他继承SysDataAcquisitionEntity实体
SysDataAcquisitionEntity sysDataAcquisitionEntity = service.FindEntity(t => t.ID == keyword);
// 逐一将传入数据赋值给实体
sysDataAcquisitionEntity.UserId = UserId;
sysDataAcquisitionEntity.Model = Model;
sysDataAcquisitionEntity.SysCode = SysCode;
sysDataAcquisitionEntity.EqpCode = EqpCode;
sysDataAcquisitionEntity.Ip = Ip;
sysDataAcquisitionEntity.EXT = EXT;
sysDataAcquisitionEntity.CreatorTime = DateTime.Now;
// 保存修改数据集
service.Update(sysDataAcquisitionEntity);
}
}
public void OldSubmitForm(AreaEntity areaEntity, string keyValue)
{
// 获取表单数据修改id为keyValue的数据
areaEntity.Modify(keyValue);
service.Update(areaEntity);
}
public void NewSubmitForm(AreaEntity areaEntity)
{
// 获取表单数据新建数据
areaEntity.Create();
service.Insert(areaEntity);
}
}