connectionstring mysql_Entity Framework 6 自定义连接字符串ConnectionString连接MySQL

在开始介绍之前,首先来看看官方对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实体数据模型。

726bf7f5aae493f33e86d750e0676476.png

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

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

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

54ab1751df22f656beadd48fbc0bdb33.png

图二 选择模型内容

3  新建连接。

7c4c43c4e72a6e3789a8eb4b55c26092.png

图三 新建连接

b6995f60cd52ad8237627d12db62ca3a.png

图四 选择数据源

a97c570de27b86611c7afea9132d6e75.png

图五 修改连接属性

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

fbef4528af557fc64011da211356f273.png

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

523f042630f7c006c3714ae04184a4de.png

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

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

有时候我们不仅仅需要在配置文件中配置,这样我们就暴露了很多重要的信息,而在很多时候我们需要通过代码来生成连接字符串,那么这该怎么做呢?因为这个配置文件还是包含很多信息的,经过我的许多努力,终于在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 "";

}

}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497974.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学界 | OpenAI 发布稀疏计算内核,更宽更深的网络,一样的计算开销

作者:杨晓凡 概要:OpenAI 的研究人员们近日发布了一个高度优化的 GPU 计算内核,它可以支持一种几乎没被人们探索过的神经网络架构:带有稀疏块权重的网络。 OpenAI 的研究人员们近日发布了一个高度优化的 GPU 计算内核&#xff0…

Java 实现sha_加密算法 MD5 和 SHA 的 JAVA 实现

首先先简单的介绍一下MD5 和 SHA 算法然后看一下在 java.security.MessageDigest (信息摘要包下) 如何分别实现 md5 加密 和 sha 加密最后在看一下 使用httpclient包 依赖下的 commons-codec-org. 包 下的apache.commons.codec.digest.DigestUtils 这个工具类 是如何快速…

java loadonstartup_java的web配置文件的“load-on-startup0/load-on-startup”一个问题

展开全部load-on-startup标记容器是否32313133353236313431303231363533e78988e69d8331333365643662在启动的时候实例化并调用其init()方法的优先级。它的值表示 servlet应该被载入的顺序。当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet。.如…

java隋唐演义游戏下载_JAVA多线程

第一节 多线程背景知识介绍多线程作用:可以帮助简化模型,还能编写强大的代码。进程与线程的基础概念:Eclipse QQ都属于进程。进程是程序(任务)的执行过程,它持有资源(共享内存、共享文件)和线程。它包含两点:1.动态性&…

packageinfo.java_package-info.java文件详解

package-info.java文件详解一、pacakge-info.java介绍pacakge-info.java是一个Java文件,可以添加到任何的Java源码包中。pacakge-info.java的目标是提供一个包级的文档说明或者是包级的注释。pacakge-info.java文件中,唯一要求包含的内容是包的声明语句&…

java classpath设置_Java CLASSPATH设置

Java CLASSPATH设置CLASSPATH: CLASSPATH是一个环境变量,Application ClassLoader使用它来定位和加载.class文件。 CLASSPATH定义路径,以查找不是扩展或Java平台一部分的第三方和用户定义的类。设置CLASSPATH时,请包括所有包含.class文件和JA…

寒武纪芯片创始人:要让AI芯片计算效率提高一万倍

来源: 传感器技术 概要:随着利好政策的不断出台以及行业的持续发展,芯片相关产业站上风口。 随着利好政策的不断出台以及行业的持续发展,芯片相关产业站上风口。而AI芯片独角兽公司寒武纪,也即将入驻雄安新区。e公司记…

JAVA格式化同一天时间间隔_java中时间格式化怎么去时间间隔值

java中时间格式化怎么去时间间隔值关注:61 答案:2 mip版解决时间 2021-01-12 11:52提问者眼泪↓流到叻心里2021-01-11 20:30比如2015-02-03 13:25:55 与 2015-02-04 15:25:55 之间的时间间隔怎么获取最佳答案二级知识专家守給你的承諾2021-01-11 21:46转换成秒-相减取绝对值。…

超美国11倍!麦肯锡176页报告解读数字中国领先全球的秘密

来源:智东西 概要:到2030年,数字化将转变并创造高达45%的行业总收入。 12月4日,麦肯锡发布了长达176页的中国数字经济报告。 报告显示,中国电子商务(2016年交易额占全球40%)和数字支付&#xf…

卡内基梅隆大学提出基于学习的动作捕捉模型,用自监督学习实现人类3D动作追踪

原文来源:Cornell University Library 作者:Hsiao-Yu Fish Tung、Hsiao-Wei Tung、Ersin Yumer、 Katerina Fragkiadaki 「雷克世界」编译:我是卡布达、哆啦A亮 目前,从单摄像头中进行动作捕捉(motioncapture&#xff…

AI智商评测标准专家研讨会邀请,2018年12月20日北京

21世纪以来,人工智能领域陆续爆发很多重要事件。其中最吸引人们眼球的,当属2016年战胜了人类围棋冠军并开始能够从0自我学习的AlphaGo。 10月26日,软银CEO孙正义在沙特阿拉伯举行的未来投资计划大会上称,未来30年内AI的智商&#…

开源神经网络框架Caffe2全介绍

本文作者吴逸鸣,整理自作者在GTC China 2017大会上的演讲,首发于作者的知乎文章。 我个人认为这是一份很值得分享的资料,因为 这应该是第一次使用全中文来讲解Caffe2和FB的AI应用的演讲 观看这次演讲不需要机器学习/神经网络&…

AI指数评论:提防“路灯谬误”,开启全球多方对话

来源:亿欧 概要:技术的单点突破,资本市场的多级繁荣,诸如此类的话题充斥着过去两到三年。然而,在AI时代思考AI,我们需要更宏大的世界观。 技术的单点突破,资本市场的多级繁荣,诸如此…

算法还是算力?周志华微博引爆深度学习的“鸡生蛋,蛋生鸡”问题

来源:AI科技大本营上周,由强化学习加持的AlphaZero,把DeepMind在围棋上的突破成功泛化到其他棋类游戏:8小时打败李世石版AlphaGo,4小时击败国际象棋最强AI——Stockfish,2小时干掉日本象棋最强AI——Elmo&a…

计算机视觉大规模爆发,6大细分领域将撑起725亿元市场

来源:中国经济时报概要:近几年来,随着技术的发展,中国计算机视觉行业发展迅速。近几年来,随着技术的发展,中国计算机视觉行业发展迅速。尤其是2016年下半年,1∶N人脸识别、视频结构化等计算机视…

java项目内存使用率过高排查_项目内存或者 cpu 占用率过高如何排查

前言:小编总结了之前生产环境cpu 占用率过高等问题,小编功力不够深厚,文章如有不对的地方,还望各位大神指正。排查原因:客服反馈说系统访问缓慢一、 在排查问题的过程中针对 CPU 的问题, 使用以下命令组合来排查问题模拟过程:①示例代码:pack…

2017 人工智能+内容生产研究报告【附下载】

来源:亿欧概要:技术进步和产业内生需求,是推动AI开始在内容生产领域应用的两个主要动力。为了弄清AI内容生产进行到何种程度,对内容生产可能产生何种影响,小编撰写了这份《2017 人工智能内容生产研究报告》&#xff0c…

ThreadLocal与Synchronized的用法

来源&#xff1a;http://blog.csdn.net/wl_ldy/article/details/5948779 一.ThreadLocal的用法 ThreadLocal的实现&#xff1a; package com.sodao.lucene; import java.util.Random; public class ThreadLocalTest implements Runnable{ ThreadLocal<Studen…

java程序员面试需要注意什么_Java程序员面试时要注意的一些问题

Java程序员面试的时候会面临各种五花八门的问题&#xff0c;你的第一反应、思维逻辑、思考方法&#xff0c;专业水平决定了企业对你的评价和你的薪资水准&#xff0c;但是除了专业以外还有一些你需要避免出现错误的注意事项&#xff0c;如果很好的避免了&#xff0c;就能帮你在…

“强化学习之父”萨顿:预测学习马上要火,AI将帮我们理解人类意识

李杉 编译自 KDnuggets量子位 出品 | 公众号 QbitAI地处加拿大埃德蒙顿的阿尔伯塔大学&#xff08;UAlberta&#xff09;可谓是强化学习重镇&#xff0c;这项技术的缔造者之一萨顿&#xff08;Rich Sutton&#xff09;在这里任教。△ 萨顿萨顿常被称为“强化学习之父”&#xf…