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

connectionstring mysql_Entity Framework 6 自定义连接字符串ConnectionString连接MySQL在开始介绍之前 首先来看看官方对 EntityFramew 的解释 EntityFramew EF isanobject relationalma NETdeveloper specificobje Iteliminates

在开始介绍之前,首先来看看官方对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 “”;

}

}

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212366.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午8:12
下一篇 2026年3月18日 下午8:12


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号