首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用实体框架时,根据环境确定连接字符串

使用实体框架时,根据环境确定连接字符串
EN

Stack Overflow用户
提问于 2011-11-23 01:27:03
回答 2查看 2.5K关注 0票数 1

我正在建立一个开发,qa,分期,生产系统的部署。我希望能够促进从一个环境发布到下一个环境,而不必从VS重新发布,也不需要手动触摸任何文件。

我需要为DEV、QA和STG/PRO建立单独的数据库,因此这意味着需要根据环境动态地切换连接字符串。

我可以在数据层中这样做--也许类似于这样:管理ASP.NET开发、分期和生产连接字符串(无需拔出头发) --但是我的数据层是建立在实体框架之上的。

问题:是否有一种方法可以在使用实体框架时实现连接字符串的动态切换?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-23 03:17:53

我正在建立一个开发,qa,分期,生产系统的部署。我希望能够促进从一个环境发布到下一个环境,而不必从VS重新发布,也不需要手动触摸任何文件。

这是非常奇怪和糟糕的要求。在部署到不同环境期间重新配置应用程序是绝对常见的。与其在应用程序中硬编码这一点,不如在应用程序中使用不同的安装/部署脚本集,这些脚本在从一个环境迁移到另一个环境时也会更改您的配置文件。

保存配置中所有环境的配置是IMHO非常糟糕的做法。

即使是硬编码的解决方案,您仍然需要更改一些“配置”来告诉应用程序它当前运行的环境。硬编码解决方案将使用有关环境的信息从配置文件中选择正确的连接字符串并将其传递给上下文构造函数。

作为上述方法的示例,您可以尝试这样做。每次重新部署应用程序时,仍然需要更改环境变量--自定义部署脚本中这种修改的复杂性与替换连接字符串完全相同:

配置文件:

代码语言:javascript
运行
AI代码解释
复制
<appSettings>
  <add key="environment" value="Dev"/>
</appSettings>
<connectionStrings>
  <add name="Dev" connectionString="..."/>
</connectionStrings>

上下文工厂方法的代码:

代码语言:javascript
运行
AI代码解释
复制
public static YourContext ContextFactory()
{
    string environment = WebConfigurationManager.AppSettings["environment"].Value;
    // This should be correctly recognized as a name of connection string.  
    return new YourContext(environment);  
}

上下文:

代码语言:javascript
运行
AI代码解释
复制
public class YourContext : DbContext
{
    public YourContext(string connectionStringName) : base(connectionStringName)
    { }
}
票数 1
EN

Stack Overflow用户

发布于 2011-11-23 02:32:43

假设您使用的是工作单元模式;这意味着您的对象上下文是在每个工作单元之后重新创建的。您可能有一个类,它继承自某种类型的对象上下文,因此在用于创建该上下文的构造函数中,您可以引用允许传入连接字符串的基本构造函数。在那里,您可以调用静态方法或新建一个对象来处理连接字符串的创建或传递实体连接。

如果您使用的是DbContext,它是相同的,只对DbConnection而不是EntityConnection

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8239788

复制
相关文章
Gradle构建时像Maven那样根据profile环境打包
Gradle中并没有直接类似Maven中的profiles支持,但是可以在processResources 任务中写一些脚本,通过传入的系统属性profile值来支持.
白石
2021/03/07
2K0
Dynamic ReLU:根据输入动态确定的ReLU
这是我最近才看到的一篇论文,它提出了动态ReLU (Dynamic ReLU, DY-ReLU),可以将全局上下文编码为超函数,并相应地调整分段线性激活函数。与传统的ReLU相比,DY-ReLU的额外计算成本可以忽略不计,但表示能力明显增强,并且实现简单,所以可以非常简单的对我们现有的模型进行修改。
deephub
2023/08/30
2010
Dynamic ReLU:根据输入动态确定的ReLU
cross-env使用以及根据环境打包
关于 之前的项目打包都是靠手动去改环境变量(纯属沙雕行为),随着项目越来越多,每一个项目打包都要去改这个变量的话真的是太蛋疼了,所以研究了一下webpack打包以及node env 主要 这样做有什么
w候人兮猗
2020/06/24
1.1K0
FastAPI 学习之路(五十二)根据环境不同连接不同数据库
我们之前分享FastAPI 学习之路(五十一)WebSockets(八)接受/发送json格式消息,这次我们分享如何根据项目选择不一样的数据库呢
雷子
2021/10/12
1.3K0
cross-env使用以及根据环境打包
新增一条如上命令,当执行npm run build时,设置proess.env.APP_ENV为production,同理设置为test.然后在config.js文件中即可根据这个变量设置相应的路径。
w候人兮猗
2020/07/01
1.1K0
HLAminer:根据NGS数据确定HLA分型结果
PCR-SBT方法是世界卫生组织WHO推崇的HLA 分型的金标准,其实就是指的直接测序,无论是WGS, WES, RNA_seq 数据都可以。近几年来涌现了很多的软件,支持从NGS测序数据直接确定HLA Allel, HLAminer 就是其中之一。
生信修炼手册
2020/05/11
1.4K0
Rafy 领域实体框架简介
按照最新的功能,更新了最新版的《Rafy 领域实体框架的介绍》,内容如下: 本文包含以下章节: 简介 特点 优势 简介 Rafy 领域实体框架是一个轻量级 ORM 框架。 与一般的 ORM 框架不同的是,它不只关注于一般性的面向对象实体与关系数据库的映射,而是更关注于富领域模型(聚合实体)与关系数据库的映射。使得开发者可以非常方便地使用富领域模型的同时,配备强大的实体属性设计、查询功能,并兼顾了极高的开发效率。 该框架可脱离 Rafy 框架其它组件独立运行,同时集领域驱动设计、面向服务架构、模型驱动架构、产
用户1172223
2018/01/30
1.4K0
hook框架-frida使用-环境配置
一.python安装模块 pip3 install frida pip3 install frida-tools 二.下载frida-server #下载链接 https://github.com/frida/frida/releases #选择版本前先adb连接手机,查看对于版本安装对应版本frida-server adb shell cat /proc/cpuinfo #选择 #比我的是32位选择 frida-server-12.9.8-android-arm.xz 三.frida-server上传手机
小小咸鱼YwY
2020/06/19
2.1K0
pytest + yaml 框架 -35.根据不同运行环境生成全局token
我们在使用自动化测试框架的时候,经常会遇到一个需求,希望在全局用例中,仅登录一次,后续所有的用例自动带上请求头部token 或者cookies。 我们可以自定义fixture 更新内置的 requests_session, 在请求头部添加token 来实现全局登录。 全局 token 实现
上海-悠悠
2023/08/22
2210
pytest + yaml 框架 -35.根据不同运行环境生成全局token
ADO.NET实体框架连接串引发的异常:Unable to load the specified metadata resource
在项目中使用Unity作为IOC串联整个项目,整合WCF,ADO.NET Entity Framework,最初表现为Unity无法构造对象,逐步排除后发现是在使用ADO.NET Entity Framework构建Application时出现如下异常:Unable to load the specified metadata resource。 异常信息: System.Data.MetadataException was unhandled Message="Unable to load the
张善友
2018/01/19
1.3K0
C# 根据前台传入实体名称,动态查询数据
项目中时不时遇到查字典表等数据,只需要返回数据,不需要写其他业务,每个字典表可能都需要写一个接口给前端调用,比较麻烦,所以采用下面这种方式,前端只需传入实体名称即可,例如:SysUser
郑子铭
2023/08/29
3090
C# 根据前台传入实体名称,动态查询数据
ADO.NET 实体框架概述
随着.NET Framework 3.5 SP1和Visual Studio 2008 SP1的正式发布。ADO.NET 实体框架正式来到开发人员的面前,它使开发人员可以通过对象模型(而不是逻辑/关系数据模型)专注于数据。实体框架有助于将逻辑数据架构抽象为概念模型,并且允许以多种方式通过对象服务和名为“EntityClient”的新数据提供程序与概念模型交互。 实体框架组件 实体框架使开发人员可以编写更少的数据访问代码,减少维护,将数据结构抽象化为更易于开展业务(标准化程度较低)的方式,并且有利于数据的持久
张善友
2018/01/30
1.5K0
ADO.NET 实体框架概述
Rafy 领域实体框架演示(3) - 快速使用 C/S 架构部署
本系列演示如何使用 Rafy 领域实体框架快速转换一个传统的三层应用程序,并展示转换完成后,Rafy 带来的新功能。 《福利到!Rafy(原OEA)领域实体框架 2.22.2067 发布!》 《Rafy 领域实体框架示例(1) - 转换传统三层应用程序》 《Rafy 领域实体框架演示(2) - 新功能展示》 以 Rafy 开发的应用程序,其实体、仓库、服务代码不需要做任何修改,即可同时支持单机部署、C/S 分布式部署。本文将说明如果快速使用 C/S 分布式部署。 前言 截止到上一篇,我们开发的应用程序都是采
用户1172223
2018/01/30
6590
Rafy 领域实体框架演示(3) - 快速使用 C/S 架构部署
根据首尾字符串截取中间字符串
常规的方式是 `strings.Index` 出位置,然后根据字符串(今天)的长度,返回词的内容。
仁扬
2023/08/03
2510
使用Jedis远程连接Redis时的小插曲
从Maven依赖库库中下载两个jar包,分别是commons-pool2-2.4.2.jar和jedis-2.9.0.jar,版本不作要求。将这个两个jar包导入到工程中,然后开始编写程序。
Java阿呆
2020/11/04
1.2K0
使用Jedis远程连接Redis时的小插曲
大量连接时使用 使用epoll管理 or golang 多协程
最近开发了一个针对游戏服务器框架测压机器人, 当大量的机器人连接建立时, 通常的做法是给每个机器人配置一个网络read协程, 但是当机器人数量比较高时, 有点担心协程的竞争, 正好无意中看到一个百万级连接服务器的文章,学习了一下epoll对conn io的管理, 自己鼓捣了一下,写了个测试工程, 现将代码分享一下, 有兴趣的可以参考参考
IT工作者
2022/07/21
7170
Rafy 领域实体框架 - 树型实体功能(自关联表)
在 Rafy 领域实体框架中,对自关联的实体结构做了特殊的处理,下面对这一功能进行讲解。 场景 在开发数据库应用程序时,往往会遇到自关联表的场景。例如,分类信息、组织架构中的部门、文件夹信息等,都是不
用户1172223
2018/01/29
1.6K0
Rafy 领域实体框架 - 树型实体功能(自关联表)
开源实体映射框架EmitMapper介绍
EmitMapper是一个开源实体映射框架,地址:http://emitmapper.codeplex.com/。
跟着阿笨一起玩NET
2018/09/20
1.4K0
使用root用户连接Ubuntu16.04时,提示SSH连接被拒绝
(1)查看ip地址是否冲突 我在单位的虚拟机ip地址是192.168.8.85,与其它机器冲突了。改成了192.168.8.83 (2)关闭Ubuntu16.04的防火墙 root@stgman-desktop:~# sudo ufw disable 防火墙在系统启动时自动禁用 亲自尝试了sudo ufw enable,从我的win7系统ssh登录不上虚拟机。但是在Ubuntu本机上ssh 192.168.8.83可以登录成功。 (3)Ubuntu系统上安装、启动sshd服务 sudo apt-get install openssh-server
似水的流年
2019/12/13
3.1K0
使用root用户连接Ubuntu16.04时,提示SSH连接被拒绝
(1)查看ip地址是否冲突 我在单位的虚拟机ip地址是192.168.8.85,与其它机器冲突了。改成了192.168.8.83 (2)关闭Ubuntu16.04的防火墙 root@stgman-desktop:~# sudo ufw disable 防火墙在系统启动时自动禁用 亲自尝试了sudo ufw enable,从我的win7系统ssh登录不上虚拟机。但是在Ubuntu本机上ssh 192.168.8.83可以登录成功。 (3)Ubuntu系统上安装、启动sshd服务 sudo apt-get in
似水的流年
2018/01/18
3.6K0

相似问题

实体框架核心连接字符串-环境变量

26

根据环境动态确定会话连接字符串

20

使用实体框架解密连接字符串

13

使用实体框架连接视图时使用.Include()

14

实体框架连接字符串

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文