Q:

How to encrypt MS SQL attached mdf file (user instance SQL Express)

In my application I am using SQL Express/ LocalDB with an attached mdf file. 
The following is an example connection string:
"data source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|database.mdf;Trusted_Connection=Yes; User Instance=true;Connection Timeout=30"

I need to encrypt database so it is not easily accessible from a third party.
Transparent Data Encryption is the perfect fit, but it is not an option, because it is only for enterprise edition of SQL Server.
I have found similar solutions for SQLite, where it appears to be possibly to hook the encryption/ decryption algorithm (sqlcipher.net and others).
There are also solutions for MSSQL server, which are rather expensive (for my case) and work only on normal databases (not user instance attached mdf files).
Finally, symmetric encryption is possible and supported (at least on SQL Express) but it means major application changes.
I am looking for an option to encrypt the whole database (or the data in several tables) with the least effort possible. 
Thanks in advance for any suggestions.
Update
Encryption of data is needed for regulatory purposes (GDPR) in order to protect "data at rest". 
The application is desktop app and will work on Windows. 

A:

First of all, keep in mind this kind of stuff will drain your application performance because you'll be encrypting and decrypting data on every read and write. Having said that, here is a solution:
You can enable Always Encrypted in your database to encrypt sensitive data. From the docs:

Always Encrypted is a feature designed to protect sensitive data, such as credit card numbers or national identification numbers (for example, U.S. social security numbers), stored in Azure SQL Database or SQL Server databases. Always Encrypted allows clients to encrypt sensitive data inside client applications and never reveal the encryption keys to the Database Engine ( SQL Database or SQL Server).

Note about performance:

Because Always Encrypted is a client-side encryption technology, most of performance overheads are observed on the client side, not in the database. Apart from the cost of encryption and decryption operations, the other sources of performance overheads on the client side are: Additional round trips to the database to retrieve metadata for query parameters.
  Calls to a column master key store to access a column master key.

I'm not sure if you can achieve that using the embedded database file. Try to open it using SSMS and follow the guides below. 
Assuming you're installing your application through a installer, you can embed an SQL Express instance inside your installer. Check this answer for more info.
Also, by using the embedded SQL Express installation, you can enable Entity Framework automatic migrations in your project.
Here is how you enable Always Encrypted in your database and here is a running sample from Microsoft Documentation.

