Take the tour ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

I have an ASP.NET MVC project in VS 2012. I want to use Entity Framework 6 code-first. When I create model and db-context file and when I run my project it does not create any database in my SQK Server. I want to know what is wrong?

I want to know how can I create database by code first in my SQL Server not in SQL Server Express or Compact. How can I create it? I try scaffolding too but it dos not work true and does not create any database. Any tips or trick would be welcome

This is my web.config setting :

<connectionStrings>
   <add name="dbRaja" 
        connectionString="Data Source=hp-PC;Initial Catalog=Raja;User ID=sa;Password=123;MultipleActiveResultSets=True;Trusted_Connection=False;Persist Security Info=True"
        providerName="System.Data.SqlClient" />
</connectionStrings> 

and its my datacontext :

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace Raja1.Models
{
    public class dbRaja : DbContext
    {
        // You can add custom code to this file. Changes will not be overwritten.
        // 
        // If you want Entity Framework to drop and regenerate your database
        // automatically whenever you change your model schema, add the following
        // code to the Application_Start method in your Global.asax file.
        // Note: this will destroy and re-create your database with every model change.
        // 
        // System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges<Raja1.Models.Raja1Context>());

        public DbSet<Raja1.Models.Spareparts> Spareparts { get; set; }
    }
}
share|improve this question
 
What happens and what does not? Code looks basically OK. –  Henk Holterman Jul 7 at 7:19
 
i dont know why it dosent create my database when it run ??? –  sara Sodagari Jul 7 at 7:23
2  
No, it creates your Db when you do the first query. –  Henk Holterman Jul 7 at 7:31
1  
Run a query. You should either get a Db or an exception. –  Henk Holterman Jul 7 at 7:37
2  
Alway include exception and error messages in the question. –  Henk Holterman Jul 7 at 7:45
show 8 more comments

2 Answers

You need to tell your DbContext to use the intended connection string. It will default to one named the same as your application (i.e. "Raja1"), whereas your connection string is named "dbRaja".

public class MyContext : DbContext
{
    public MyContext : base("name=dbRaja")
    {
    }
}
share|improve this answer
add comment

Put the following code in your app start:

using (var context = new YOUR_DB_CONTEXT()) {
    if (!context.Database.Exists()) {
        ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
    }
}
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.