2017-01-24 76 views
0

我正在一个web api上工作,我需要在App_Data文件夹中有一个本地数据库,我使用的是实体框架代码,但它不会在App_Data中创建数据库实体框架不会在App_Data中创建数据库

这里是我的连接字符串:

<connectionStrings> 
    <add name="TestDBContext" 
     connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=TestDB;Integrated Security=True;MultipleActiveResultSets=True;AttachDBFilename=|DataDirectory|TestDB.mdf;User Instance=True" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 

我使用的显示所有文件在项目菜单和唧唧歪歪

但数据库正在

创建

我该如何解决这个问题?

+0

在连接字符串内部添加'AttachDbFileName ='部分。 [参考](https://msdn.microsoft.com/en-us/library/jj653752(v = vs.110).aspx#localdb) –

回答

0

通过安装Sql LocalDB解决了问题

1

是的,那是默认值。两种方法来解决:

1)添加连接字符串对上下文的构造函数:

public ApplicationDbContext() 
     : base("TestDBContext") { } 

2)默认的连接工厂添加到您的配置:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
    <parameters> 
     <parameter value="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=TestDB;Integrated Security=True;MultipleActiveResultSets=True;AttachDBFilename=|DataDirectory|TestDB.mdf;User Instance=True" /> 
    </parameters> 
    </defaultConnectionFactory> 
</entityFramework> 

https://msdn.microsoft.com/en-us/data/jj556606

+0

hi dude!我使用你的代码,但它不工作,实际上现在我得到一个错误,而我尝试插入新的数据,错误文本是:系统找不到指定的文件 – Hooman

+0

可能发生在数据库创建。尝试删除仅用于SQL Express的User Instance = True。 –

+0

还向AttachDBFilename = | DataDirectory | \ TestDB.mdf添加反斜杠 –

0

通常,您需要将应用配置中的设置更改为'AttachDbFileName',否则它默认为SQL Server Express实例。通常你可以在模式正好被设置为连接并解决这个问题:

<add name="ConnectionStringName" 
    providerName="System.Data.SqlClient" 
    connectionString="Data Source=(LocalDB)\v11.0;AttachDbFileName=|DataDirectory|\DatabaseFileName.mdf;InitialCatalog=DatabaseName;Integrated Security=True;MultipleActiveResultSets=True" /> 

这里是连接的MS页对你太: https://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx#sqlce \

虽然我会认真建议,如果这是一个不小的紧凑应用程序将有小的增长,你不会做一个附加的数据库。这对于部署大规模应用程序只是一个糟糕的主意,而且一般情况下不好的做法是,除非您知道您的数据库大多数情况下总是很小。只是我的两分钱。

相关问题