Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-xxxx.mdf;Initial Catalog=aspnet-xxxx;Integrated Security=True" providerName="System.Data.SqlClient"

Server=(localdb)\\mssqllocaldb; Database=xxxxx; Serve=服务器名;Database=数据库名

Server=(localdb)\\mssqllocaldb; AttachDbFilename=xxxx.mdf;Initial Catalog=xxxxx; Serve指服务器名;AttachDbFilename指连接的本地那个数据库文件,Initial Catalog指数据库名称

“AttachDbFilename=|DataDirectory|\\data.mdf”      “|DataDirectory|”代表ASP.NET项目里自动创建的App_Data文件夹并在其内创建data.mdb文件。

integrated security=true 采用集成验证

Trusted_Connection=True; 采用信任连接;

MultipleActiveResultSets=true  指定此数据库连接是否复用数据库内已建立的相同用户的连接。如为True时,建立数据库连接时会先查询服务器上是否已为此用户建立连接,如已建立则直接复用此连接。数据库的打开与关闭是很消耗系统的性能,利用这种对链接的关联方式可以减轻系统的负担。

Encrypt=False;是否加密;

TrustServerCertificate=True;设置为“true”以指定 适用于 SQL Server 的 Microsoft JDBC Driver 将不会验证 SQL Server SSL 证书。如果为“true”,当使用 SSL 加密通信层时,将自动信任 SQL Server SSL 证书。如果为“false”,适用于 SQL Server 的 Microsoft JDBC Driver 将验证服务器 SSL 证书。 如果服务器证书验证失败,驱动程序将引发错误并终止连接。 默认值为“false”。 当且仅当 encrypt 属性设置为“true”时,此属性仅影响服务器 SSL 证书验证。

AplicationIntent= ReadWrite;用来标记客户端发送来的请求类型(ApplicationIntent = ReadOnly)

Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-xxxx.mdf;Initial Catalog=aspnet-xxxx;Integrated Security=True;Trusted_Connection=True;MultipleActiveResultSets=true" providerName="System.Data.SqlClient"

Asp.net Core 数据库离线文件的连接(特别感谢“张不水”兄的大力帮助。)

一、绝对路径:

"DefaultConnection": "Data Source=(localdb)\\mssqllocaldb;AttachDbFilename=C:\\Users\\Administrator\\Documents\\Visual Studio 2017\\Projects\\WebApplication1\\WebApplication1\\App_Data\\aspnet123.mdf;Integrated Security=True;Connect Timeout=30"

二、相对路径:

1、修改appsettings.json文件中的"ConnectionStrings"(第3行)

"DefaultConnection": "Data Source=(localdb)\\mssqllocaldb;AttachDbFilename=%CONTENTROOTPATH%\\App_Data\\aspnet123.mdf;Integrated Security=True;Connect Timeout=30;MultipleActiveResultSets=true”

需注意的是:AttachDbFilename=%CONTENTROOTPATH%\\App_Data\\aspnet123.mdf;

使用 ContentRootPath 是将文件放置在项目目录下而不是wwwroot目录下,这样更安全。

  • ContentRootPath  用于包含应用程序文件。
  • WebRootPath  用于包含Web服务性的内容文件。

实际使用区别如下:

  1. ContentRoot: C:\MyApp\
  2. WebRoot: C:\MyApp\wwwroot\

2、修改Startup.cs

修改前代码

  1. public class Startup
  2. {
  3. public Startup(IHostingEnvironment env)
  4. {
  5. var builder = new ConfigurationBuilder()
  6. .SetBasePath(env.ContentRootPath)
  7. .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
  8. .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
  9.  
  10. if (env.IsDevelopment())
  11. {
  12. // For more details on using the user secret store see https://go.microsoft.com/fwlink/?LinkID=532709
  13. builder.AddUserSecrets<Startup>();
  14. }
  15.  
  16. builder.AddEnvironmentVariables();
  17. Configuration = builder.Build();
  18. }
  19.  
  20. public IConfigurationRoot Configuration { get; }
  21.  
  22. // This method gets called by the runtime. Use this method to add services to the container.
  23. public void ConfigureServices(IServiceCollection services)
  24. {
  25. // Add framework services.
  26. services.AddDbContext<ApplicationDbContext>(options =>
  27. options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
  28.  
  29. services.AddIdentity<ApplicationUser, IdentityRole>()
  30. .AddEntityFrameworkStores<ApplicationDbContext>()
  31. .AddDefaultTokenProviders();
  32.  
  33. services.AddMvc();
  34.  
  35. // Add application services.
  36. services.AddTransient<IEmailSender, AuthMessageSender>();
  37. services.AddTransient<ISmsSender, AuthMessageSender>();
  38. }

修改后代码

  1. public class Startup
  2. {
  3. //添加修改 声明一个连接字符串(20行)
  4. private string _contentRootPath = "";
  5.  
  6. public Startup(IHostingEnvironment env)
  7. {
  8. var builder = new ConfigurationBuilder()
  9. .SetBasePath(env.ContentRootPath)
  10. .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
  11. .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
  12.  
  13. //添加修改(27行)
  14. _contentRootPath = env.ContentRootPath;
  15.  
  16. }
  17.  
  18. public void ConfigureServices(IServiceCollection services)
  19. {
  20. //添加修改(45行)声明变量conn并做相应处理
  21. string conn = Configuration.GetConnectionString("DefaultConnection");
  22. if(conn.Contains("%CONTENTROOTPATH%"))
  23. {
  24. conn = conn.Replace("%CONTENTROOTPATH%", _contentRootPath);
  25. }
  26. //修改默认的连接服务为conn
  27. services.AddDbContext<ApplicationDbContext>(options =>
  28. options.UseSqlServer(conn));
  29.  
  30. ...
  31. }

3、我们需要手动在项目中添加“App_data”文件夹,并复制粘贴一个标准的内容为空的.mdf文件。

为方便大家学习我这里为大家提供了示例数据库

生成数据库

1、双击Startup.cs

2、右键选“ 打开所在的文件夹”

3、在controller文件夹上按 shift +右键  选“在此处打开命令窗口”

4、命令框输入cd..  回车后退回上层目录

5、输入下面的命令

  1. dotnet ef migrations add Initial 建立并初始化数据库
  2. dotnet ef database update 更新数据库
  1. dotnet ef migrations add xxxx 更新模型字段后需要执行此命令通知vs重新编译表变动 xxxx为变更的任意字段名 一个就够 系统会自动追加变更添加的其他字段
  2. dotnet ef database update 更新数据库
  3.  
  4. 或者vs
  1. PM> Enable-Migrations 启动迁移配置
    PM> Add-Migration xxxx 更新数据库的迁移的名称 更新模型字段后需要执行此命令通知vs重新编译表变动 xxxx为变更的任意字段名 一个就够 系统会自动追加变更添加的其他字段
    (注意这里必须是在Models目录中添加数据模型(类、新建项、现有项等)并重新生成后,然后添加对应的控制器和视图后才能使用此命令,生成迁移命令后马上使用Update-Database更新数据库。
    (可以多次修改生成一次迁移命令,不能多次迁移修改却执行一次更新数据库,只能迁移一次就更新一次。)
    PM> Update-Database TargetMigration: $InitialDatabase 回滚数据库至初始状态
    PM> Update-Database TargetMigration: xxxx 回滚数据库至某个更新
  2.  
  3. PM> Update-Database 更新数据库
  4.  
  5. LocalDb 数据库升级为 MSSQLSERVER 数据库
    1、为了便于管理数据库还是使用AttachDbFilename=|DataDirectory|\aspnet-xxxx.mdf(相对路径)
    2、只启用MSSQLSERVER的数据引擎。
    3、修改步骤:
      打开App.config文件;
      修改<entityFramework>中的
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
    改为如下
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
  6.  
  7. 并把<parameters>节注释掉,如下

!--<parameters>
<parameter value="mssqllocaldb" />
</parameters>-->

4、程序重新编译好。

5、生产机器上安装MSSQLSERVER,把编译好的程序复制到生产机器上,执行程序即可。

  1.  

.net 和 core 数据库连接字符串的更多相关文章

  1. JavaScript日历控件开发 C# 读取 appconfig文件配置数据库连接字符串,和配置文件 List<T>.ForEach 调用异步方法的意外 ef 增加或者更新的习惯思维 asp.net core导入excel 一个二级联动

    JavaScript日历控件开发   概述 在开篇之前,先附上日历的代码地址和演示地址,代码是本文要分析的代码,演示效果是本文要实现的效果代码地址:https://github.com/aspwebc ...

  2. Azure Web App (三)切换你的Net Core Web 项目的数据库连接字符串

    一,引言 上一篇文章讲到今天我们演示了一下,如何在Web App中创建 “Deployment Slot”进行快速无停机部署新功能代码,也使用VS进行发布到创建的Web App中创建的新的部署槽位中, ...

  3. .NET跨平台之旅:数据库连接字符串写法引发的问题

    最近在一个ASP.NET Core站点中遇到一个奇怪问题.当用dotnet run命令启动站点后,开始的一段时间请求执行速度超慢,有时要超过20秒,有时甚至超过1分钟,日志中会记录这样的错误: Sys ...

  4. EF--Codefirst 加密数据库连接字符串

    http://www.tuicool.com/articles/QvYbEn 一.EF,CodeFirst加密SQL连接符 public LifeHelpContext() : base(" ...

  5. C# 根据ADO.NET数据库连接字符串构建EntityFrame数据库连接字符串

    为了保持开发效率,以及保持代码优雅,项目中引用了EntityFrame.但是又因为某些报表功能需要大量计算,所以又要求直接使用ADO.NET,调用存储过程进行计算. 于是乎webconfig文件中就会 ...

  6. 【转】ASP.NET数据库连接字符串总结

    来源:http://blog.csdn.net/lutinghuan/article/details/5973897 ASP.NET数据库连接字符串总结 一.使用OleDbConnection对象连接 ...

  7. web.config connectionStrings 数据库连接字符串的解释

    先来看一下默认的连接SQL Server数据库配置<connectionStrings>   <add name="LocalSqlServer" connect ...

  8. 获取不到app.config里面的数据库连接字符串的解决方法

    今天在自己的类库里添加了对app.config文件的数据库连接字符串的引用,但是返回的居然是Null,纳闷了.然后在网上找到了答案原来是我的app.config文件加错了地方,应该加到启动项目里面,而 ...

  9. [转]ASP.NET数据库连接字符串总结

    这个不难,而且很重要,但总忘,找了篇比较全的,作为资料. 原文链接http://developer.51cto.com/art/201107/275406.htm 关于数据库链接字符串的相关知识,我们 ...

随机推荐

  1. 【LeetCode题解】206_反转链表(Reverse-Linked-List)

    目录 描述 解法一:迭代 思路 Java 实现 Python 实现 复杂度分析 解法二:递归 思路 Java 实现 Python 实现 复杂度分析 更多 LeetCode 题解笔记可以访问我的 git ...

  2. DEV控件ASPxTextBox设置ClientEnabled="false"之后出现的问题

    DEV控件ASPxTextBox设置ClientEnabled="false"之后,js中设置文本框的值后,按钮后台点击事件中获取文本框的值为空.

  3. 发起qq临时会话

    http://wpa.qq.com/msgrd?v=3&uin=947739614&site=qq&menu=yes

  4. Python中类的属性的访问控制

    因为自己是做.NET的,之前有学习过Python,喜欢这门语言的很多特性,最近又不时看了一会儿,将自己的感受分享给大家,其中也难免会用C#的角度看Python的语法,主要还是讲下Python中类中对属 ...

  5. C# 小软件部分(一)

    自己在空闲时分整合.编写了一款小软件程序,命名为魔法兔子,希望大家可以提出意见和指导,此篇文章主要为软件的部分截图和介绍. 软件详情: 1.首先是登录,注册界面. 可以注册自己的账号,后台是腾讯云服务 ...

  6. CentOS7下SVN server的安装与配置

    CentOS7通过yum install命令进行安装SVN(参考:http://subversion.apache.org/packages.html#centos) $ yum install su ...

  7. 第一节:Java初识与计算机基础

    一.计算机 = 硬件 + 软件 1.硬件:计算机中看的见摸得着的物理元件,例如:CPU(中央处理器).内存条.硬盘... CPU:计算机的运算和控制核心,主要用于对数据的逻辑运算以及对计算机指令的解析 ...

  8. Docker for Windows(二)登录与配置镜像加速器

    一.启动Docker for Windows 通过桌面Docker Desktop启动,右下角出现的白色鲸鱼图标保持稳定时,表示Docker正在正常运行,将鼠标移到图标上会显示"Docker ...

  9. ios上-webkit-overflow-scrolling与position的bug

    如上图,.fb-box是一个大div,包含着页面上的所有元素,包括所看到的那个弹窗.dialog-img,并且设置了height:100%;-webkit-overflow-scrolling:tou ...

  10. 爬虫必备—scrapy-redis(分布式爬虫)

    转载自:http://www.cnblogs.com/wupeiqi/articles/6912807.html scrapy-redis是一个基于redis的scrapy组件,通过它可以快速实现简单 ...