LocalDB简介和在VS2012及以上版本的使用

http://www.cnblogs.com/fzrain/p/3812364.html?utm_source=tuicool

LocalDB简介和在VS2012及以上版本的使用

之前一不小心把自己电脑上的SQL Server弄换了,卸载之后没立即重装,于是乎研究了一下LocalDB,感觉还不错,特别是个人做开发或测试的时候,所以记录下来并分享给大家。OK,下面开始正题:

什么是LocalDB?

随着SQL Server 2012的发布,LocalDB跃入我们的视线,它可以被看做是SQL Server Express的轻量级版本。

LocalDB专门为开发人员创建,它非常易于安装,几乎无需管理,兼容T-SQL语言,编程接口与SQL Server Express别无二致。

有了LocalDB,开发人员就不需要在自己的笔记本上安装和维护一个庞大的SQL Server实例了。另外,LocalDB也适用于小型应用环境,开发人员可以将其用于小型生产环境或者嵌入式环境。

LocalDB的核心技术特性

  • 兼容其它SQL Server版本,使用sqlservr.exe作为服务进程,使用相同的客户端访问接口(如ADO.NET、ODBC或PDO),兼容T-SQL编程语言。
  • 在同一台计算机上不必安装多个LocalDB,不同的应用程序可以并行执行多个LocalDB进程,但所有的进程都是从同一个可执行文件(sqlservr.exe)启动的。
  • LocalDB不会创建任何系统服务,LocalDB进程会根据需要自动启动、停止。应用程序只需连接“Data Source=(localdb)\v11.0”,LocalDB就会作为应用程序的子进程启动。随着连接的终止,LocalDB进程也会随之停止。
  • LocalDB支持AttachDbFileName属性,允许开发者指定数据库文件位置。例如:

    Data Source = (localdb)\v11.0;  Integrated Security = true;  AttachDbFileName = C:\MyData\Database1.mdf

在Visual Studio中使用LocalDB

使用LocalDB需要VS的版本在2012或以上。我这里演示将使用Entity Framework的Code first模式。

第一步:创建一个控制台应用程序:

第二步:使用NuGet添加对Entity Framework的引用:

第三步:创建实体和DbContext:

public  class Product
    {
        public int ProductID { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public decimal Price { get; set; }
        public string Category { get; set; }
    }
    class EFDbContext : DbContext
    {
        public DbSet<Product> Products { get; set; }
    }

最后一步(也是最关键的):修改App.config配置文件中的连接字符串:

<connectionStrings >
    <add name="EFDbContext" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=SportsStore;Integrated Security=SSPI;AttachDBFilename=E:\SportsStore.mdf" />
  </connectionStrings>

这里Data Source的值就是指定LocalDB的一个实例。在这个连接字符串中还有一个AttachDBFilename属性,这是用来指定数据库文件(包括.mdf以及日志文件)的路径,我这里放在E盘根目录下,如果没有指定,数据库就会创建到默认地址(C盘你的用户)下。其他属性相信大家都不陌生。

测试成果:在Program.cs的main函数中添加以下代码:

using (var context=new EFDbContext())
            {
                context.Set<Product>().Add(new Product { Price = 1, Name = "p1", Category = "a", Description = "无" });
                context.SaveChanges();
              List<Product> products=  context.Set<Product>().ToList();
                foreach (Product  p in products)
                {
                    Console.WriteLine(p.ProductID +" "+p.Name +" "+p.Price);
                }
            }
            Console.ReadKey();

运行调试:

在本地磁盘E的根目录下会出现以下文件:

在VS中的SQL Server对象浏览窗口也可以看到:

总结

LocalDB相比SQL Server要轻量很多,虽说提供的功能不是很多但对于很多开发和测试人员来说足够了。使用起来也是极其方便的,只需要修改一下连接字符串,我们的程序该怎么写还是怎么写就行了。

参考链接:http://www.csdn.net/article/2012-03-29/313675

http://www.cnblogs.com/zhangran/archive/2012/08/26/2657864.html

时间: 2024-08-06 13:41:22

LocalDB简介和在VS2012及以上版本的使用的相关文章

vs2012打开低版本项目时 出现vs2012警告未能加载包“visual c++ package 解决办法

vs2012 打开 vs2010 项目时 提示的 错误信息. 解决办法 是下载一个 vs2012的 一个补丁包 http://www.microsoft.com/en-us/download/details.aspx?id=36020 初次安装成功后,调试 无法启用,关闭,重新打开项目 即可解决! ======ok. [在此谢谢网上提供解决方案的朋友们,谢谢你们!] vs2012打开低版本项目时 出现vs2012警告未能加载包"visual c++ package 解决办法

pyenv简介——Debian/Ubuntu中管理多版本Python

pyenv简介——Debian/Ubuntu中管理多版本Python MAY 21ST, 2016 12:00 AM | COMMENTS pyenv是管理Python版本的工具,它支持在多个Python版本间切换. 一.安装pyenv 1 git clone https://github.com/yyuu/pyenv.git ~/.pyenv 将PYENV_ROOT和pyenv init加入bash的~/.bashrc(或zsh的~/.zshrc) 1 2 3 echo 'export PAT

在VS2012后的版本中做数据报表时,提示尚未指定报表“Report1”的报表定义

有一群的朋友在用VS2012做数据报表时,老是提示 本地报表处理期间出错. 尚未指定报表“Report1”的报表定义 未将对象引用设置到对象的实例. 我看了一下,步骤没错,我用VS2010做了一下,一切OK,没问题,但用VS2013做时, 就提示这错误 后仔细看了一下设计生成的源码,嘿,还真有区别,在VS2012与VS2013中, ReportViewer生成的代码在引用报表数据时,使用的是ReportEmbeddedResource属性 <LocalReport ReportEmbeddedR

VS2012 安装低版本EntityFrameWork5.0

VS2012使用EntityFrameWork CodeFirst和自动生产控制器模型的问题 1.VS2012 model 模型直接生成数据库: CodeFrist功能,主要使用EntityFrameWork6.0,EntityFrameWork5.0不支持会报错. 2.安装EntityFrameWork6.0,有互联网的条件下: 3.EntityFrameWork6.0不支持控制器直接生成前端代码,主要是6.1以上版本和VS2012不兼容导致,所以需要回装到EntityFrameWork5.0

(转)在VS2012后的版本中做数据报表时,提示尚未指定报表“Report1”的报表定义

转自:http://www.cnblogs.com/ljx2012/p/4093474.html 有一群的朋友在用VS2012做数据报表时,老是提示 本地报表处理期间出错.        尚未指定报表“Report1”的报表定义            未将对象引用设置到对象的实例. 我看了一下,步骤没错,我用VS2010做了一下,一切OK,没问题,但用VS2013做时, 就提示这错误 后仔细看了一下设计生成的源码,嘿,还真有区别,在VS2012与VS2013中, ReportViewer生成的代

VS2012编译VS2010版本的过程报错解决

C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32C:\Program Files\MSBuild\Microsoft C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets这个文件是干嘛的?为啥我用vs2010的时候提示我: error : 缺少必需的文件“”. 平台工具集(v110)是vs2012下用的,你

VS2012与此版本的Windows不兼容

如图,vs2012安装到Win7有时候会报如下错误 下载补丁安装即可 下载地址:http://yunpan.cn/QhN9tZV9fuzLv  提取码 850c

VS2012兼容低版本代码配置

1.输出文件位置配置错误: (1)编译报错:若要更正此问题,请确保$(OutDir).$(TargetName) 和$(TargetExt) 属性值与%(Link.OutputFile) 中指?定的值匹配. (2)处理办法:将[1项目属性->常规]中三项参照[2项目属性->链接器->常规]中输出文件位置配置.(输出目录+目标文件名相同即可,中间目录可不同) 1项目属性->常规 2项目属性->链接器->常规 2.文件版本混乱: (1)编译报错:vs2010LINK : f

对于vs2012等高版本对scanf报警的

出错点 项目 ->属性 -> c/c++ -> 预处理器 -> 点击预处理器定义,编辑,加入_CRT_SECURE_NO_WARNINGS,即可. 原文地址:http://blog.51cto.com/ji123/2057196