Я новичок в ASP.NET, поэтому мне трудно понять, в чем проблема. Категории .
элемент содержит идентификатор , name , description , количество , цена < /code> и categoryid .
категория содержит идентификатор и name .
< P> Вот проблема: когда будет представлен запрос на создание и элемент, по какой -то причине создается новая категория , то идентификатор новой категории используется в качестве категории для элемента . Это не должно произойти. Я не хочу создать новую категорию . Br/> Как видите, тело запроса содержит «CategoryId»: 2 и возвращаемое тело содержит «CategoryId»: 13
Здесь Экриншоты моих таблиц базы данных: < /p>
Таблица элементов < /p>
Таблица категорий < /p>
Как видите, Элементы Таблица имеет 13 в качестве категории и в таблице категорий есть новая строка с пустой строкой под именем .
Пожалуйста. Я пытаюсь учиться. Мой первый пост получил голосование в течение первой минуты, потому что в нем содержалось « много кода », и мне пришлось снять его, потому что это было не было достаточно. Полем Я просто пытался быть настолько подробным, насколько это возможно, чтобы показать, как я маршрутирую свой бэкэнд. < /P>
Я не уверен Много движущихся частей, и я все еще изучаю asp.net, так что я не уверен, что именно вызывает ошибку, но я постараюсь показать только то, что я думаю, актуально. < /p>
Здесь здесь также является ссылкой на репо, если вы хотели бы увидеть его полностью. >Models > Item.cs
public class Item
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Description { get; set; } = string.Empty;
public int Quantity { get; set; }
public decimal Price { get; set; }
[ForeignKey("CategoryId")]
public int CategoryId { get; set; }
public Category Category { get; set; } = new Category();
}
< /code>
Dtos > Item > ItemDto.cs
public class ItemDto
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Description { get; set; } = string.Empty;
public int Quantity { get; set; }
public decimal Price { get; set; }
public int CategoryId { get; set; }
}
< /code>
Dtos > Item > CreateItemDto.cs
public class CreateItemDto
{
public string Name { get; set; } = string.Empty;
public string Description { get; set; } = string.Empty;
public int Quantity { get; set; }
public decimal Price { get; set; }
public int CategoryId { get; set; }
}
< /code>
Repositories > ItemRepository.cs
public class ItemRepository : IItemRepository
{
private readonly ApplicationDBContext _context;
public ItemRepository(ApplicationDBContext context)
{
_context = context;
}
public async Task CreateAsync(Item itemModel)
{
await _context.Items.AddAsync(itemModel);
await _context.SaveChangesAsync();
return itemModel;
}
}
< /code>
Controllers > ItemRepository.cs
[Route("api/item")]
[ApiController]
public class ItemController : ControllerBase
{
private readonly IItemRepository _itemRepo;
public ItemController(IItemRepository itemRepo)
{
_itemRepo = itemRepo;
}
[HttpGet]
[Route("get/{id}")]
// This function will return a specific category from the database according to its Id
public async Task GetById([FromRoute] int id) {
var item = await _itemRepo.GetByIdAsync(id);
if(item == null) {
return NotFound();
}
return Ok(item.ToItemDto());
}
[HttpPost]
[Route("create")]
public async Task CreateAsync([FromBody] CreateItemDto itemDto) {
if(!ModelState.IsValid) {
return BadRequest(ModelState);
}
var itemModel = itemDto.ToItemFromCreate();
await _itemRepo.CreateAsync(itemModel);
return CreatedAtAction(nameof(GetById), new { id = itemModel.Id }, itemModel.ToItemDto());
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... -asp-net-c
У меня есть проблема передачи правильных данных в мою базу данных SQL через мой веб -API ASP.NET Core 9 ⇐ C#
Место общения программистов C#
1738097831
Anonymous
Я новичок в ASP.NET, поэтому мне трудно понять, в чем проблема. Категории .
элемент содержит идентификатор , name , description , количество , цена < /code> и categoryid .
категория содержит идентификатор и name .
< P> Вот проблема: когда будет представлен запрос на создание и элемент, по какой -то причине создается новая категория , то идентификатор новой категории используется в качестве категории для элемента . Это не должно произойти. Я не хочу создать новую категорию . Br/> Как видите, тело запроса содержит «CategoryId»: 2 и возвращаемое тело содержит «CategoryId»: 13
Здесь Экриншоты моих таблиц базы данных: < /p>
Таблица элементов < /p>
Таблица категорий < /p>
Как видите, Элементы Таблица имеет 13 в качестве категории и в таблице категорий есть новая строка с пустой строкой под именем .
Пожалуйста. Я пытаюсь учиться. Мой первый пост получил голосование в течение первой минуты, потому что в нем содержалось « много кода », и мне пришлось снять его, потому что это было не было достаточно. Полем Я просто пытался быть настолько подробным, насколько это возможно, чтобы показать, как я маршрутирую свой бэкэнд. < /P>
Я не уверен Много движущихся частей, и я все еще изучаю asp.net, так что я не уверен, что именно вызывает ошибку, но я постараюсь показать только то, что я думаю, актуально. < /p>
Здесь здесь также является ссылкой на репо, если вы хотели бы увидеть его полностью. >Models > Item.cs
public class Item
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Description { get; set; } = string.Empty;
public int Quantity { get; set; }
public decimal Price { get; set; }
[ForeignKey("CategoryId")]
public int CategoryId { get; set; }
public Category Category { get; set; } = new Category();
}
< /code>
Dtos > Item > ItemDto.cs
public class ItemDto
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Description { get; set; } = string.Empty;
public int Quantity { get; set; }
public decimal Price { get; set; }
public int CategoryId { get; set; }
}
< /code>
Dtos > Item > CreateItemDto.cs
public class CreateItemDto
{
public string Name { get; set; } = string.Empty;
public string Description { get; set; } = string.Empty;
public int Quantity { get; set; }
public decimal Price { get; set; }
public int CategoryId { get; set; }
}
< /code>
Repositories > ItemRepository.cs
public class ItemRepository : IItemRepository
{
private readonly ApplicationDBContext _context;
public ItemRepository(ApplicationDBContext context)
{
_context = context;
}
public async Task CreateAsync(Item itemModel)
{
await _context.Items.AddAsync(itemModel);
await _context.SaveChangesAsync();
return itemModel;
}
}
< /code>
Controllers > ItemRepository.cs
[Route("api/item")]
[ApiController]
public class ItemController : ControllerBase
{
private readonly IItemRepository _itemRepo;
public ItemController(IItemRepository itemRepo)
{
_itemRepo = itemRepo;
}
[HttpGet]
[Route("get/{id}")]
// This function will return a specific category from the database according to its Id
public async Task GetById([FromRoute] int id) {
var item = await _itemRepo.GetByIdAsync(id);
if(item == null) {
return NotFound();
}
return Ok(item.ToItemDto());
}
[HttpPost]
[Route("create")]
public async Task CreateAsync([FromBody] CreateItemDto itemDto) {
if(!ModelState.IsValid) {
return BadRequest(ModelState);
}
var itemModel = itemDto.ToItemFromCreate();
await _itemRepo.CreateAsync(itemModel);
return CreatedAtAction(nameof(GetById), new { id = itemModel.Id }, itemModel.ToItemDto());
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79395162/i-have-an-issue-passing-the-correct-data-to-my-sql-database-through-my-asp-net-c[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия