摘自:http://blog.csdn.net/dyllove98/article/details/9289553

数据库生成位置可控制(其实主要就是DbContext的构造函数)

1.使用DbContext的构造函数:public DbContext(string nameOrConnectionString)

a、在app.config中添加:

1   <connectionStrings>
2 <add name="CodeFirstBlogContext" providerName="System.Data.SqlClient" connectionString="Server=.;Database=CodeFirstBlog;uid=sa;pwd=sa" />
3 </connectionStrings>

注:当然这里也可以添加使用其他数据库,但是要提起安装好驱动:引用可参考此文:http://www.cnblogs.com/yylp521/p/3173176.html

b、在数据上下文类中添加构造函数(原来没有显示出现,调用默认的一般是本机.\sqlexpress数据库实例)

1         public BlogContext(string config)
2 : base(config)
3 {
4 }

这里可以显示的引用配置文件中的配置库,注:此处config可以直接写name=CodeFirstBlogContext,是配置文件中的connectionStrings下的name。

2. 使用DbContext的构造函数:public DbContext(DbConnection existingConnection, bool contextOwnsConnection)

a、在数据上下文类中添加构造函数(原来没有显示出现,调用默认的一般是本机.\sqlexpress数据库实例)

1 public BlogContext(DbConnection connection,bool contextOwnsConnection)
2 : base(connection, contextOwnsConnection)
3 { }

b、使用时建立一个Connection即可

 1             string connStr = "Server=.;Database=CodeFirstBlog2;uid=sa;pwd=sa";
2 using (SqlConnection conn = new SqlConnection(connStr))
3 {
4 using (var db = new BlogContext(conn, false))
5 {
6 Console.WriteLine("输入一个新的Blog名称");
7 var name = Console.ReadLine();
8
9 var blog = new Blog { Name = name };
10 db.Blogs.Add(blog);
11 db.SaveChanges();
12
13 var query = from b in db.Blogs
14 orderby b.Name
15 select b;
16
17 foreach (var item in query)
18 {
19 Console.WriteLine(item.Name);
20 }
21 }
22 }
23 Console.ReadKey();
3. 使用数据的连接工厂
1             Database.DefaultConnectionFactory = new SqlConnectionFactory(@"Server=.\sqlexpress;Database=CodeFirstBlog4;uid=sa;pwd=sa");
2 using (var db=new BlogContext())
3 {
4 db.Database.Initialize(true);
5 db.Blogs.Add( new Blog { Name = "test" });
6 db.SaveChanges();
7 }

注:这里指定数据库名称无效,应该与Database的Initialize方法有关,待查证。

4.这里还有其他的DbContext构造函数可用,可直接查看DbContext类的实现。

EntityFramework 数据库连接可用代码动态设定的更多相关文章

  1. 错误注入 异常行为 环境变量或代码动态激活来触发这些异常行为 模拟错误 容错性 正确性 稳定性 宏 本质 macro

    小结: 1. 微服务中某个服务出现随机延迟.某个服务不可用. 存储系统磁盘 IO 延迟增加.IO 吞吐量过低.落盘时间长. 调度系统中出现热点,某个调度指令失败. 充值系统中模拟第三方重复请求充值成功 ...

  2. 如何在Spring Boot 中动态设定与执行定时任务

    本篇文章的目的是记录并实现在Spring Boot中,动态设定与执行定时任务. 我的开发项目是 Maven 项目,所以首先需要在 pom.xml 文件中加入相关的依赖.依赖代码如下所示: <de ...

  3. spring:如何用代码动态向容器中添加或移除Bean ?

    先来看一张类图: 有一个业务接口IFoo,提供了二个实现类:FooA及FooB,默认情况下,FooA使用@Component由Spring自动装配,如果出于某种原因,在运行时需要将IFoo的实现,则F ...

  4. Android动态设定GridView的高度,固定column,实现高度自适应

    动态设定GridView的高度,固定column,根据gridview中的item个数设定高度: 调用以下方法: public static void setListViewHeightBasedOn ...

  5. asp.net ajax 检测用户名是否可用代码

    原文  asp.net ajax 检测用户名是否可用代码 .net ajax 检测用户名是否可用代码 <script type="text/网页特效" src="c ...

  6. Unity3D代码动态修改材质球的颜色

    代码动态修改材质球的颜色: gameObject.GetComponent<Renderer>().material.color=Color.red;//当材质球的Shader为标准时,可 ...

  7. Style样式的四种使用(包括用C#代码动态加载资源文件并设置样式)

    Posted on 2012-03-23 11:21 祥叔 阅读(2886) 评论(6) 编辑 收藏 在Web开发中,我们通过CSS来控制页面元素的样式,一般常用三种方式: 1.       内联样式 ...

  8. 【WPF】C#代码动态改变控件的样式

    需求:C#代码生成的一组按钮Button需要设置样式. 如果是在XAML中引入样式: <!-- 引入资源 --> <UserControl.Resources> <Res ...

  9. Java下的框架编程(反射,泛型,元数据,CGLib,代码动态生成,AOP,动态语言嵌入)

    Java 虽然没有动态语言般暴起,但仍然天连天,水接水的生出好多框架技术---反射(reflection),泛型(generics),元数据(annotation),proxies(proxy/cgl ...

随机推荐

  1. YII 的源码分析(-)

    做为源码分析的首秀,我就挑了yii(读作歪依依而不是歪爱爱):它的赞美之词我就不多说了,直接入正题.先准备材料,建议直从官网下载yii的源码包(1.1.15). 在demos里边有一个最简单的应用—h ...

  2. EntityFramework 7 Left Join Where is error(Test record)

    First of all, my English is very poor, so I may not be a very good expression, very sorry! In this b ...

  3. Oracle 10g安全加固(审计、监听密码)

    环境: Linux 6.4 + Oracle 10.2.0.4 1. Oracle 10g 审计功能 2. 对数据库监听器的关闭和启动设置密码 1. Oracle 10g 审计功能 Oracle 10 ...

  4. JS Div滚动,下拉框添加属性,年月日下拉条

    创建某一下拉菜单的项: str = str+"<option value='"+i+"'>"+i+"</option>&quo ...

  5. DNS知识指南

    1. 什么是记录? 记录的实质是存在DNS服务器叶结点上的一条映射(只讨论权威DNS,不讨论Local DNS). A记录:(域名:IP地址) 例:cnblogs.com   A  42.121.25 ...

  6. STM32L时钟

    Four different clock sources can be used to drive the system clock (SYSCLK): 1.HSI ((high-speed inte ...

  7. Win10 UWP 开发系列:使用多语言工具包让应用支持多语言

    之前我在一篇blog中写过如何使用多语言工具包,见http://www.cnblogs.com/yanxiaodi/p/3800767.html 在WinEcos社区也发布过一篇详细的文章介绍多语言工 ...

  8. C# 删除字符串中的中文

    /// <summary> /// 删除字符串中的中文 /// </summary> public static string Delete中文(string str) { s ...

  9. authentication与网站安全验证

    1.Forms 身份验证提供程序 通过 Forms 身份验证,可以使用所创建的登录窗体验证用户的用户名和密码.未经过身份验证的请求被重定向到登录页,用户在该页上提供凭据和提交窗体.如果应用程序对请求进 ...

  10. 分布式系统设计权衡之CAP

    写在最前: 1.为什么学习并记录分布式设计理念一系列相关的东西 在日常工作中系统设计评审的时候,经常会有一些同事抛出一些概念,高可用性,一致性等等字眼,他们用这些最基本的概念去反驳系统最初的设计,但是 ...