I am developing a multi-container app in docker. One of the services is a long-running console application in C# which basically does some polling on a database and sending
If you are always going to run in a container, then go with a console app. I see no inherent benefit of running as a service since containers, under proper orchestration such as Kubernetes, should be considered ephemeral. Also, you will have less friction in running your .NET Core 3.1.x application as a Linux or Windows container if you keep it simple i.e. console.
Also, I would use the following line in your console to ensure it plays nice with the allocated CPU for the container:
while(true)
{
Thread.Sleep(1 * 1000);
}