Query for a single unique record takes about 1.5 seconds
I've seen some options in .NET be different than the default SSMS options. Specifically, ARITHABORT was ON in SSMS, but in .NET it was OFF (the default value in the DB was off, where I assume .NET was pulling this from). This caused SQL Server to choose a vastly different (and terrible) plan in the .NET code.

Can you verify the options (ANSI_NULLS, QUOTE_IDENTIFIER, ARITHABORT, etc.) are consistent? My guess is that they are not.

See Slow in the Application, Fast in SSMS? by Erland Sommarskog for more information.