Я создаю базовый c API с RavenDB и .NetCore 3.1 MVC. Я использую автоматически сгенерированное поле идентификатора "Modelnames / 123-ClusterInstance". Так как мои контроллеры по умолчанию будут использовать myapi.com/api/ssolinks/ndomid}, поле будет myapi.com/api/ssolinks/SSOLinks/123-ClusterInstance (идентификатор). Как бы вы посоветовали мне обойти это? Я нашел старый пост SO здесь: Autogenerated Id в RavenDB , но документация, похоже, исчезла. Я обошел это, добавив его в HTTP-запрос, но это кажется хакерским. Спасибо за любой вклад!
namespace myAPI.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class SSOLinksController : ControllerBase
{
[HttpGet("{id}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public IActionResult Get(string Id)
{
//I want to NOT do this if possible :D
Id = $"SSOLinks/{Id}";
var store = DocumentStoreHolder.CreateStore();
using (IDocumentSession session = store.OpenSession())
{
List<SSOLink> ssolinks = session
.Query<SSOLink>()
.Where(x => x.Id == Id)
.ToList();
return Ok(ssolinks);
}
}
}
}