2016-10-19 12 views
1

Я пытаюсь создать базу данных с сущностью, основанной на кодах. Таблицы в базе данных являются таблицами идентификации.База данных codefirst не создает

Проблема с созданием базы данных SQL-сервера. Когда я запускал приложение, базы данных не создавалось.

Однако, я могу найти физический найти здесь, на этом месте -

C:\Users\user\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS\HWAPI.mdf 

Поэтому, когда я добавить любой таблицы или изменить структуру, то все изменения, которые происходят в выше месте и думать, что это не используя основную базу данных.

Нет данных, которые созданы на моем локальном сервере SQL.

Посмотрите на мой код -

StartUp.cs

public class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      HttpConfiguration config = new HttpConfiguration(); 
      ConfigureOAuth(app); 
      config.DependencyResolver = new NinjectResolver(NinjectWebCommon.CreateKernel()); 
      WebApiConfig.Register(config); 
      app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); 
      app.UseWebApi(config); 
     } 


     public void ConfigureOAuth(IAppBuilder app) 
     { 
      app.CreatePerOwinContext(OwinAuthDbContext.Create); 
      app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create); 
      app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create); 
      OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions() 
      { 
       AllowInsecureHttp = true, 
       TokenEndpointPath = new PathString("/token"), 
       AccessTokenExpireTimeSpan = TimeSpan.FromDays(1), 
       Provider = new AuthorizationServerProvider() 
      }; 
     } 
    } 

и есть Context -

public class OwinAuthDbContext : IdentityDbContext<ApplicationUser>, IDisposable 
    { 
     public OwinAuthDbContext() 
      : base("DefaultConnection", throwIfV1Schema: false) 
     { 
      Database.SetInitializer<OwinAuthDbContext>(null); 
     } 

     public static OwinAuthDbContext Create() 
     { 
      return new OwinAuthDbContext(); 
     } 
     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      base.OnModelCreating(modelBuilder); 
      modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
      modelBuilder.Entity<IdentityUser>().ToTable("AspNetUsers"); 
      modelBuilder.Entity<IdentityRole>().ToTable("AspNetRoles"); 
      modelBuilder.Entity<IdentityUserClaim>().ToTable("AspNetUserClaims"); 
      modelBuilder.Entity<IdentityUserLogin>().ToTable("AspNetUserLogins"); 
     } 

     protected override void Dispose(bool disposing) 
     { 
      base.Dispose(disposing); 
     } 
    } 

web.config

<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=HWAPI;Integrated Security=SSPI;Connect Timeout=30;User Instance=True" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

</configuration> 

Просьба помочь и сообщить мне, если требуется дополнительная информация.

+1

Чтобы использовать локальный SQL-сервер, вам необходимо изменить строку DefaultConnection, чтобы указать на ваш локальный сервер. Сейчас он использует SQL Express. –

ответ

0

Спасибо всем за ввод их входы.

Оказалось, что мне нужно настроить учетные данные для существующей базы данных. После того, как я установил учетную информацию для базы данных, она сработала.

раньше -

<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=HWAPI;Integrated Security=SSPI;Connect Timeout=30;User Instance=True" 
     providerName="System.Data.SqlClient" /> 

после -

<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=HWAPI;User ID=sa;Passw[email protected]" providerName="System.Data.SqlClient"/> 

Это решило мою проблему, и я смог подключиться к базе данных в SQLEXPRESS.

1

Ваша проблема с строкой соединения. Вам нужно попробовать, как показано ниже.

Если вам нужно использовать Localhost затем:

<connectionStrings> 
<add name="DefaultConnection" connectionString="Server=localhost; Database=HWAPI;Trusted_Connection=True;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Если вам нужно использовать LocalDB затем:

<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\HWAPI.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> 
</connectionStrings> 
Смежные вопросы