在开始介绍之前,首先来看看官方对Entity Framework的解释:Entity Framework (EF) is an object-relational mapper that enables .NET developers to work with relational data using domain-specific objects. It eliminates the need for most of the data-access code that developers usually need to write.这里面涉及到几个关键的知识点:1 首先它是一个对象关系映射。2 其次它使用的是特定于域的对象。 3 它摒弃了传统的通过SQL语句来访问数据库的方式。其实我们通过对比Linq To SQL我们会发现他们几乎都是一样的。因为人的思想更习惯于使用面向对象的方式,因为它更便于理解而且也使用起来更加方便快捷。

下面就来一步步介绍如何在VS2015中添加ADO.NET实体数据模型。

图一  添加ADO.NET实体数据模型

1  新建一个文件夹,并向这个文件夹中添加一个ADO.NET实体数据模型,例如ModelTest。

2  添加一个来自数据库的EF设计器,这里有四个选项,每一个都对应一种模型内容,这里暂时不介绍,在以后的序列中在做介绍。

图二 选择模型内容

3  新建连接。

图三 新建连接

图四 选择数据源

图五 修改连接属性

4 选择数据库对象,并生产对象关系映射。

图六 选择数据库对象和设置

图七 生产的特定于域的对象

下面一部分我们来看看自动生成的连接字符串。

有时候我们不仅仅需要在配置文件中配置,这样我们就暴露了很多重要的信息,而在很多时候我们需要通过代码来生成连接字符串,那么这该怎么做呢?因为这个配置文件还是包含很多信息的,经过我的许多努力,终于在msdn上面找到了答案。

string server = System.Configuration.ConfigurationManager.AppSettings["MySQLServer"];

if (!string.IsNullOrEmpty(server))

{

string providerName = "MySql.Data.MySqlClient";

MySqlConnectionStringBuilder sqlbulider = new MySqlConnectionStringBuilder();

sqlbulider.Server = server;

sqlbulider.UserID = "root";

sqlbulider.Password = "12345";

sqlbulider.Database = "dvap";

sqlbulider.AllowZeroDateTime = true;

sqlbulider.ConvertZeroDateTime = true;

sqlbulider.IntegratedSecurity = true;

EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();

entityBuilder.Provider = providerName;

entityBuilder.ProviderConnectionString = sqlbulider.ToString();

entityBuilder.Metadata = @"res://*/EF6.DvapRegularModel.csdl|res://*/EF6.DvapRegularModel.ssdl|res://*/EF6.DvapRegularModel.msl";

m_ConnectionString = entityBuilder.ToString();

}

通过上面的方式我们能够生成正确的连接字符串,在生成连接字符串之后我们需要将这个连接字符串传入到自动生成的dvapEntities对象中,这里也贴出部分代码。

namespace TestEF6.EF6

{

using System;

using System.Data.Entity;

using System.Data.Entity.Infrastructure;

public partial class dvapEntities : DbContext

{

public dvapEntities()

: base("name=dvapEntities")

{

}

protected override void OnModelCreating(DbModelBuilder modelBuilder)

{

throw new UnintentionalCodeFirstException();

}

public virtual DbSet dvap_scene_business { get; set; }

public virtual DbSet echarts_barcharts_singleverticalcolumn { get; set; }

public virtual DbSet echarts_barcharts_singleverticalcolumnproperty { get; set; }

public virtual DbSet logs { get; set; }

public virtual DbSet options { get; set; }

public virtual DbSet test_stackhistogram { get; set; }

public virtual DbSet users { get; set; }

}

}

仅仅使用默认的 dvapEntities函数肯定达不到要求,我们需要重载一个能够将连接字符串作为参数的构造函数,这里我们表述如下:

public dvapEntities(string connectionString)

:base(connectionString)

{

}

后面我们就可以使用这个构造函数来获取数据库中相应的数据了,这里我们也贴出相关的代码来作为参考。

public string GetOptionValue(string option_name)

{

try

{

using (var db = new EF6.dvapEntities(m_ConnectionString))

{

EF6.options option = null;

option = (from x in db.options

where x.OptionName == option_name && x.UserID == 0

select x).SingleOrDefault() ?? null;

if (null != option)

{

return option.OptionValue;

}

}

return "";

}

catch (Exception ex)

{

return "";

}

}

如果想查看当前代码示例请点击

connectionstring mysql_Entity Framework 6 自定义连接字符串ConnectionString连接MySQL相关推荐

  1. duri oracle 连接字符串_C#连接Oracle数据库的连接字符串

    Oracle XE 标准连接 Oracle XE(或者"Oracle Database 10g Express Edition")是一个简单免费发布的版本. 以下是语法格式: Dr ...

  2. Java中String类的concat方法___java的String字符串的concat()方法连接字符串和“+“连接字符串解释

    Java中String类的concat方法 在了解concat()之前,首先需要明确的是String的两点特殊性. 长度不可变 值不可变 这两点从源码中对String的声明可以体现: private ...

  3. duri oracle 连接字符串_Oracle连接字符串大全

    // 在 C# 代码中用以下数据库提供程序访问 Oracle 数据库 // Oracle Data Provider for .NET / ODP.NET 使用 TNS 写法 Data Source= ...

  4. mysql连接字符串_MySQL连接字符串中的几个重要步骤

    上一篇文章我们对MySQL连接字符串的实际操作经验与实际操作技巧有一个详细的介绍,此篇文章主要是对MySQL连接字符串的实际操作步骤(在实际操作中具有重要地位)的介绍,望你会有所收获. MySQL连接 ...

  5. mysql dsn 连接字符串_MySql 连接字符串总结

    MySQL Connector/ODBC 2.50 (MyODBC 2.50)连接方式 本地数据库连接 以下是语法格式: Driver={mySQL};Server=localhost;Option= ...

  6. ef power tools mysql_Entity Framework Code First ---EF Power Tool 和MySql一起使用遇到的问题...

    MySql里有个默认的范例数据库 world, 里面有三个表, 下载完安装, 然后新建一个控制台项目,项目名称为EFEntity, 然后右键点击项目名,在弹出菜单中选择Entity Framework ...

  7. java sql server连接字符串_java连接sql server

    1 packagecom.cps.rom.utils;2 3 /******************************************************************** ...

  8. c 中oracle连接字符串,Oracle连接字符串C#

    Netty入门学习 一.他山之石 Netty实现原理浅析 http://www.importnew.com/15656.html netty线程模型 http://www.infoq.com/cn/a ...

  9. vfp 调用 mysql uft-8 connstring_(最全的数据库连接字符串)connectionstring

    PS:如果不是太稳定的数据库,最好使用connection lifetime=10来限制连接池内连接的生存日期 Standard Security: "Driver={SQL Server} ...

最新文章

  1. GitHub开源的吃鸡版超级玛丽
  2. linux启动java jar文件_推荐:Linux启动Java程序jar包Shell脚本
  3. Android与Swift iOS开发:语言与框架对比
  4. CJCMS系列---慢慢讲电子商务在项目中的实践之前言
  5. Android权限Uri.parse总结
  6. Android模拟器体验有感
  7. CSDN页面完美格式打印
  8. Vdbench工具安装使用
  9. MATLAB数据类型及转换
  10. apkg格式怎么打开_jpg怎么转换成pdf?再不学就晚了!
  11. 领克无线carplay适配方案展示
  12. 扎实干货!PP-Tracking:百度提出实时目标跟踪系统(附源码教程)
  13. 科技爱好者如何避免成为“民科”,以及为何科技爱好团体必须杜绝“民科”现象...
  14. ElasticSearch六 ElasticSearch扩展之FileBeat、Logstash
  15. python爬虫豆瓣TOP250电影信息并写入数据库
  16. 一些关于SLG手游的想法
  17. 机器视觉入门资料大全,工业机器人“眼睛”
  18. 高并发编程(四)高并发解决方案从前端到数据库
  19. 电脑屏幕亮度怎么调?四种自由调节亮度方式
  20. 大型网络游戏服务器要具备什么条件

热门文章

  1. python定时任务,隔月执行,隔定时执行
  2. TensorFlow 全网最全学习资料汇总之TensorFlow的技术应用
  3. 2018届校招面经精选
  4. 企业咨询:常用分析和咨询方法列表
  5. oracle Sql语句分类
  6. cdh中hdfs非ha环境迁移Namenode与secondaryNamenode,从uc机器到阿里;
  7. 脚踏实地,才能顶天立地!
  8. hadoop 重新格式化 NameNode
  9. SVM支持向量机-手写笔记(超详细:拉格朗日乘数法、KKT条件、对偶性质、最优化、合页损失、核函数...)
  10. Linux下启动程序常见问题,linux系统启动流程及常见故障解决方式