文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>[LightSwitch]-入门疑问系列-连接字符串跑哪里去了?

[LightSwitch]-入门疑问系列-连接字符串跑哪里去了?

时间:2011-06-09  来源:kennyCheng

                                                   [LightSwitch]-入门疑问系列1-连接字符串跑哪里去了

        刚好有一个进出口货运代理项目,不大不小,客户也挺熟悉,决定这次技术偿新,用LightSwitch beta2开发。

        刚入门LS,就发现一个郁闷的问题,项目中的App.config中存储的ConnectionString并不是编译后程序使用的地址。
       

         寻找ConnectionString

        

     

 

 

 

 

 

    

这里不是,就到Debug中看看,果然,在Bin/Debug中找到了web.config,关于ConnectionString的内容如下

       <connectionStrings>
    <add name="_IntrinsicData" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename='C:\Users\\CustomApply\Bin\Data\ApplicationDatabase.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True" />
    <add name="CustomeApply_ERPData" connectionString="Data Source=.;Initial Catalog=CustomeApply_ERP;Persist Security Info=True;User ID=sa;" />
    </connectionStrings> 

    我在LS的Data中添加的DataSource是Database类型,“CustomeApply_ERPData”就是数据库的连接地址。但是,“_IntrinsicData”是什么数据库? 

    ApplicationDatabase.mdf的作用?  

    顺藤摸瓜,在程序的Data目录中发现了这个SQL Express数据库。到SQL 中打开查看。

    

    原来这个数据库存放的是Membership的表结构,应该是在配置授权与认证的时候用到。

    这个时候,有一个疑问,如果我在Data Sources里直接新建一个Table,这个Table会存放到哪里?

   

   然后查看数据库中的表结构

 

 果然,如果不是Attach To External Data Sources,新建的Table都会保存到ApplicationDatabase表中。

   编译项目的时候发生了什么?

   通过刚才的测试,我发现,表的新建是在编译的时候被添加到ApplicationDatabase中的,而每次编译“_IntrinsicData”都会还原成

  "Data Source=.\SQLEXPRESS;AttachDbFilename='$(MSBuildProjectDirectory)\Bin\Data\ApplicationDatabase.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True"

  这样的格式。于是,干脆删掉ApplicationDatabase.mdf看看会有什么后果。

 

 

于是打开target文件,发现

  

原来这里就是生成web.config ConnectionString的地方。可惜在系统内禁止修改。不过可以在程序发布后,手动修改“_IntrinsicData”的地址。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载