SQL server CPU 100% - Turn on Optimize for Adhoc Workload
You can turn on "Optimize for Adhoc Workloads" with a high confidence.

The only potential effect this has, is when a plan is compiled the second time, it takes a few microseconds longer. This is because the first time a plan is cached, it only records the stub.

After that, the full plan is already cached, and you'll see the benefits.



Aside: if you're seeing high CPU as a result of a new OR/M, I'd look at something called implicit conversion.

What happens is that on string data types (CHAR, VARCHAR, NCHAR, NVARCHAR), you might be seeing Unicode vs ASCII conversions between the database and your application code.

The best way to look for this is to make sure your ORM matches the string data types correctly. If it's VARCHAR in the database, make sure the ORM doesn't submit parameters as NVARCHAR.

More reading here: Convert Implicit and the related performance issues with SQL Server.