0

我在 VS 2012 中有一个 ASP.NET MVC 项目。我想先使用 Entity Framework 6 代码。当我创建模型和 db-context 文件并运行我的项目时,它不会在我的 SQK 服务器中创建任何数据库。我想知道有什么问题?

我想知道如何首先在我的 SQL Server 中而不是在 SQL Server Express 或 Compact 中通过代码创建数据库。我怎样才能创建它?我也尝试使用脚手架,但它不能正常工作并且不会创建任何数据库。欢迎任何提示或技巧

这是我的web.config设置:

<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> 

及其我的数据上下文:

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; }
    }
}
4

2 回答 2

2

您需要告诉您DbContext使用预期的连接字符串。它将默认为与您的应用程序名称相同的名称(即“Raja1”),而您的连接字符串名为“dbRaja”。

public class MyContext : DbContext
{
    public MyContext : base("name=dbRaja")
    {
    }
}
于 2013-07-08T16:45:57.690 回答
1

将以下代码放入您的应用程序开始:

using (var context = new YOUR_DB_CONTEXT()) {
    if (!context.Database.Exists()) {
        ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
    }
}
于 2013-07-08T17:03:04.727 回答