1.增加一个实体类
/// <summary>
/// 团队成员模型
/// </summary>
public class Member
{
/// <summary>
/// 团队成员主键
/// </summary>
public int Id { set; get; }
/// <summary>
/// 团队成员名
/// </summary>
public string FirstName { set; get; }
/// <summaryhua
/// 团队成员花名
/// </summary>
public string NickName { set; get; }
/// <summary>
/// 团队主键
/// </summary>
public int TeamId { set; get; }
}
2.增加一个数据库上下文实体
public class MemberContext : DbContext
{
public MemberContext(DbContextOptions<MemberContext> options) : base(options)
{
}
public DbSet<Member> Members { get; set; }
}
3.注册上下文到IOC容器
public void ConfigureServices(IServiceCollection services)
{
// 1、注册上下文到IOC容器
services.AddDbContext<MemberContext>(options => {
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
});
}
4.appsettings.json 添加数据库配置
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"DefaultConnection": "Data Source=.;Initial Catalog=memberservice;Persist Security Info=True;User ID=sa;Password=tony"
}
}
5.安装EF Core 命令行工具
dotnet tool install --global dotnet-ef

6.安装NuGet包 Microsoft.EntityFrameworkCore.Design
7.增加初始化迁移,更新数据库
执行命令
dotnet ef migrations add test

执行成功后,在项目中会生成脚本操作

执行命令
dotnet ef database update

执行成功后,生成数据库

8.添加服务接口
public interface IMemberService
{
IEnumerable<Member> GetMembers();
IEnumerable<Member> GetMembers(int teamId);
}
9.添加服务实现
public class MemberServiceImpl : IMemberService
{
public readonly IMemberRepository memberRepository;
public IEnumerable<Member> GetMembers()
{
return memberRepository.GetMembers();
}
public IEnumerable<Member> GetMembers(int teamId)
{
return memberRepository.GetMembers(teamId);
}
}
10.添加仓储接口
public interface IMemberRepository
{
IEnumerable<Member> GetMembers();
IEnumerable<Member> GetMembers(int teamId);
}
11.添加仓促实现
public class MemberRepository : IMemberRepository
{
public MemberContext teamContext;
public MemberRepository(MemberContext teamContext)
{
this.teamContext = teamContext;
}
public IEnumerable<Member> GetMembers()
{
return teamContext.Members.ToList();
}
public IEnumerable<Member> GetMembers(int teamId)
{
return teamContext.Members.Where(memeber => memeber.TeamId == teamId);
}
}
12.注册service和仓促
public void ConfigureServices(IServiceCollection services)
{
// 1、注册上下文到IOC容器
services.AddDbContext<MemberContext>(opt =>
opt.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); //使用SqlServer数据库
// 2、注册成员service
services.AddScoped<IMemberService, MemberServiceImpl>();
// 3、注册成员仓储
services.AddScoped<IMemberRepository, MemberRepository>();
services.AddControllers();
}
13.添加Controller
[Route("api/[controller]")]
[ApiController]
public class MembersController : ControllerBase
{
private readonly IMemberService memberService;
public MembersController(IMemberService memberService)
{
this.memberService = memberService;
}
/// <summary>
/// 查询所有成员信息
/// </summary>
/// <param name="teamId">?teamId参数结尾方式</param>
/// <returns></returns>
[HttpGet]
public ActionResult<IEnumerable<Member>> GetMembers(int teamId)
{
if (teamId == 0)
{
return memberService.GetMembers().ToList();
}
else
{
return memberService.GetMembers(teamId).ToList();
}
}
}
14.查看运行结果


