zoukankan      html  css  js  c++  java
  • Sql Server对象管理器的使用

        VS提供了很多便捷的工具,Sql Server对象管理器可以直接在VS里面访问数据库,不用再打开一个Management Studio。这里记录下Sql Server对象管理器的使用。

        1.先在视图里面找到SqlServer对象管理器

        

       2.在vs的右侧边栏就会出现。

       我们先链接一个localdb,在Sql Server上右键 选择添加Sql Server

     

     会出现下面的对话框,这里填写(LocalDb)v11.0,选用windows验证。这样就出现本机下面的所有localdb了。

    这个是来自MVC webconfig的链接字符串 connectionString="Data Source=(LocalDb)v11.0;Initial Catalog=aspnet-EF-20150303094817;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnet-EF-20150303094817.mdf"。

    让人奇怪的是,AttachDbFilename是aspnet-EF-20150303094817.mdf,在MVC4的工程App_Data文件中是数据库名称是EF.Models.VetContext.mdf. 在c盘和工程里面没有找到aspnet-EF-20150303094817.mdf,但实际操作是EF.Models.VetContext.mdf.他们应该存在某种映射。

     <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)v11.0;Initial Catalog=aspnet-EF-20150303094817;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnet-E             F-20150303094817.mdf" />
     <add name="CEEntities" connectionString="Data Source=|DataDirectory|Db.sdf" providerName="System.Data.SqlServerCe.4.0" /> 
    <add name="SqlConnection" connectionString="Data Source=RJ-STONE-PC;Initial Catalog=Support;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=sa" providerName="System.Data.SqlClient" /> </connectionStrings>

    sqlserver和ce的链接字符串都不用说了。 Initial Catalog表示数据库名称。Security Info表示登陆方式,false表示需要sa登陆。为true或者SSPI都是无需验证的windows登陆。

      奇葩的是我修改了attachDBfilename的名称为AttachDBFilename=|DataDirectory|EF.mdf,App_data中并没有创建新的ef.mdf,将Initial Catalog后面也改成了EF 运行程序之后,数据还是更新在了EF.Models.VetContext.mdf中。

      <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)v11.0;Initial Catalog=EF;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|EF.mdf" />

    这个现象让我有点寝食难安。现在发现,原来是开始创建VetContext.cs的时候,那个DefaultConnection根本没有使用。Dbcontext会自动的创建一个连接,EF.Models.VetContext.mdf才是这个默认链接的名称。所以修改webconfig那个链接或者删除那个连接字符串都是没有影响的。

     public class VetContext:DbContext
        {
            public DbSet<Patient> Patients { get; set; }
            public DbSet<Visit> Visits { get; set; }
        }

    正确的做法是加上一个构造函数:

      public class VetContext:DbContext
        {
            public DbSet<Patient> Patients { get; set; }
            public DbSet<Visit> Visits { get; set; }
    
            public VetContext() : base("DefaultConnection")
            {
                
            }
        }

    这个时候就会创建新的数据库了。

     同样可以用来加载本地Sql Sever 数据库。

    另外,vs还有自带的服务器资源管理器里面也可以打开数据库。但没有上面的好用。当数据库开始处于链接状态,他不能成功链接到数据库,需要待其他使用链接关闭之后才可以。对于数据库的访问功能,两者没有什么区别。

     

  • 相关阅读:
    重排列
    最多分成多少块
    后面第一个大于
    走格子
    硬币游戏
    还是01串
    戴德兰
    个人所得税
    最长高地
    执行Commit时Oracle做哪些工作
  • 原文地址:https://www.cnblogs.com/stoneniqiu/p/4310405.html
Copyright © 2011-2022 走看看