Same session ID(with same SQL text) but 3 different connection ids
The clue here is that those connections each share a "parent_connection_id," which per the docs:


  Identifies the primary connection that the MARS session is using


I noticed the aliases used in those queries heavily implies your app is using Entity Framework.  Default connection settings (scaffolded out by the Visual Studio project templates) will enable Multiple Active Result Sets (MARS) in the Entity Framework application's connection string.

So this is normal behavior of MARS - where multiple queries will share a "parent connection" (and thus share a session), interleaving the queries submitted to it by the application.

The most common reason cited for turning on MARS with EF is to help facilitate lazy loading - which is probably why all of the queries look similar (it'll be pulling data in by ID as needed).



As far as performance problems related to this, it's hard to know without seeing the queries and code.  With the MARS and EF stuff, I'd be tempted to guess that it's the N+1 query problem, which I've discussed on my blog.  The solution is to change the .NET code so that it's not executing a query for each row of an already-retrieved resultset.