27
votes

I'm creating a MVC 5 web application with EF 6 Code first. Now it creates a database in the App_Data folder. I want to publish the website to an Azure website. Because this is only the test version of the website, I don't want to pay for it. It will only visited a couple of times a month until it is in production.

Is it possible to run the database something like an access database file? I thought that some kind of functionality existed. I thought the name was SQL Server Compact Edition? But how does it works?

I also thought that you could create a free 20MB sql server database. See this link of the pricing page. Search for 20 in your browser. http://azure.microsoft.com/en-us/pricing/details/web-sites/ I don't see that option.

Any ideas would be welcome!

4

4 Answers

31
votes

Yes, you just have to right click and include in your project.

I write an article for this in Chinese, and this is the English version I found.

Solution for free SQL Server in Azure:

  1. Install two nuget: EntityFrame.SqlServerCompact & Microsoft SQL Server Compact Edition

  2. Put SQL database file (.sdf/.mdf) in APP_Data folder

  3. Put connection string like this to use it:

    <add name ="DefaultConnection" connectionString ="Data Source=|DataDirectory|CompactDB.sdf" providerName ="System.Data.SqlServerCe.4.0" />
    
  4. Publish full project include above SQL database file to AzureWebsites.

  5. It work well and is totally free.
10
votes

I found the 20Mb free SQL Server option. I still had a website in my subscription that was stopped. When I deleted that, no website or database was there in my subscription anymore. I then created a new website via the custom website option in the azure portal. I then could select (in the wizard) a free 20 MB SQL Server database.

I uploaded my MVC application and the Code First created my database automatically. I don't know why the option wasn't showing up before but now it works.

2
votes

There's no free version of the SQL Database service. What you may have read is that there's a 1 year free 20MB MySQL database available.

When you're saying that a database it created in the App_Data folder, this uses SQL Server Compact (see Maresh's links) and that is free.

0
votes

If you want to connect on premise database you need to setup azure virtual network. See the codeproject article

http://www.codeproject.com/Articles/261063/Azure-Virtual-Network-Connecting-Local-Database

there is some alternative way using azure service bus.

http://www.bradygaster.com/post/windowsazurewebsites-onprem-servicebus

Another option would be sql server compact edition.

http://msdn.microsoft.com/en-us/data/ff687142.aspx

see below link also

Support for SQL Server Compact 4.0 on Azure