這是我的界面
public interface ISuperHeroRepo
{
Task<List<SuperHero>> GetAll();
Task<SuperHero> GetById(int id);
Task<SuperHero> Create(SuperHero superHero);
Task<SuperHero> Update(SuperHero superHero);
void Delete(int id);
}
這是我的存盤庫
public class SuperHeroRepo : ISuperHeroRepo
{
private readonly DataContext _ctx;
public SuperHeroRepo(DataContext ctx)
{
_ctx = ctx;
}
public void Delete(int id)
{
//Cann't Implement
throw new NotImplementedException();
}
}
這是我的控制器
[Route("api/[controller]")]
[ApiController]
public class SuperHeroController : ControllerBase
{
private readonly ISuperHeroRepo _context;
public SuperHeroController(ISuperHeroRepo context)
{
_context = context;
}
[HttpDelete("{id}")]
public async Task<IActionResult> Delete(int id)
{
//cannt implement
}
}
我使用存盤庫模式。我想要 CURD 操作。我已經實作了 Create、update 和 Get 方法的代碼。但我無法實作存盤庫的代碼和 Delete 方法的介面。任何人請幫助。[我是初學者]
uj5u.com熱心網友回復:
我建議你閱讀下面的文章。 https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/crud?view=aspnetcore-6.0
我還將為您完成代碼。
public interface ISuperHeroRepo
{
Task<List<SuperHero>> GetAll();
Task<SuperHero> GetById(int id);
Task<SuperHero> Create(SuperHero superHero);
Task<SuperHero> Update(SuperHero superHero);
void Delete(SuperHero superHero);
Task SaveChangesAsync();
}
控制器 :
[Route("api/[controller]")]
[ApiController]
public class SuperHeroController : ControllerBase
{
private readonly ISuperHeroRepo _context;
public SuperHeroController(ISuperHeroRepo context)
{
_context = context;
}
[HttpDelete("{id}")]
public async Task<IActionResult> Delete(int id)
{
var result = await _context.GetById (id)
_context.Delete(result);
await _context.SaveChangesAsync();
}
}
uj5u.com熱心網友回復:
與其獲取 SuperHero 來洗掉它,不如使用存根物體。
public void Delete(int id)
{
var e = new SuperHero() {Id = id};
_ctx.Set<SuperHero>().Remove(e);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/412744.html
標籤:
