localdb位置如何工作?

时间:2016-01-23 15:59:30

标签: devexpress entity-framework-6 localdb devextreme

我正在尝试位于

的Dev Express演示应用程序
C:\Users\Public\Documents\DevExpress Demos 15.2\DevExtreme\DXHotels

Web.config具有连接字符串

<add name="DXHotelsStore" connectionString="data source=(localdb)\devextreme;attachdbfilename=|DataDirectory|\HotelDB.mdf;integrated security=True;multipleactiveresultsets=True;App=EntityFramework" providerName="System.Data.SqlClient" />

数据文件存在于

C:\Users\Public\Documents\DevExpress Demos 15.2\DevExtreme\DXHotels\App_Data\HotelDB.mdf

解决方案文件位于

C:\Users\Public\Documents\DevExpress Demos 15.2\DevExtreme\DXHotels

我不明白为什么位置(localdb)\ devextreme会转换为.mdf所在的文件夹。

当我运行解决方案时,它是如何解决这个问题的?

[更新] question here解释了为什么数据库是在App_Data文件夹中创建的,但它没有解释为什么使用(localdb)devextreme。

[更新] 以下问题也是相关的 My support question at Dev Express My question about log files

2 个答案:

答案 0 :(得分:0)

LocalDB是一个面向开发人员的数据库实例,它不是一个实际的实例,意味着没有服务正在运行。从开发人员的角度来看,优势在于无需安装或维护,因为之前您曾使用过SQL Server Express安装或任何其他完整类型的SQL Server版本。 需要注意的是,您没有获得命名管道,一切都与当地连接有关。另一方面,您仍然可以创建命名实例,也称为LocalDB私有实例 - 通常,您可以使用(LocalDB)\连接到它们。由于在LocalDB端没有执行附件,因此指定数据库的名称就像一个&#34;附加类似的进程。 希望这会有所帮助。

答案 1 :(得分:0)

Nikolai在DevExpress的支持下回答了

“v11.0”是在安装LocalDB时创建的通用SQL Server Express LocalDb实例。由于此实例的名称取决于Visual Studio的当前版本,因此在启动我们的演示时可能会出现问题。这就是我们在连接字符串中不使用此名称的原因。为解决此问题,我们选择了自己的实例名称,该名称是在构建演示项目时创建的。请参阅演示项目设置中的“构建事件”选项卡。

我检查了构建事件,并且构建后事件命令行是

   sqllocaldb create "devextreme" 2>nul 1>nul
   sqllocaldb start "devextreme" 2>nul 1>nul
   exit 0