环境:EntityFramework5.0,MySql5.6,MSSQL2012 EF是强大的ORM工具,真正意义上的多数据库链接指的是不同类型的数据库,以及同种类型的数据库多个库,EF很好的支持这一点,下面简单演示下: 创建一个MVC4.0,Framework4.5的基本项目,然后重点是WebConfig配
EF是强大的ORM工具,真正意义上的多数据库链接指的是不同类型的数据库,以及同种类型的数据库多个库,EF很好的支持这一点,下面简单演示下:
创建一个MVC4.0,Framework4.5的基本项目,然后重点是WebConfig配置:
" 1.0 " encoding= " utf-8 " ?>
For more information on how to configure your ASP.NET application, please visit
http: // go.microsoft测试数据/fwlink/?LinkId=152368
-->
// go.microsoft测试数据/fwlink/?LinkID=237468 -->
//无论多少类型,多少个同类型数据库,尽管加吧
" webpages:Version " value= " 2.0.0.0 " />
" webpages:Enabled " value= " false " />
" PreserveLoginUrl " value= " true " />
" ClientValidationEnabled " value= " true " />
" UnobtrusiveJavaScriptEnabled " value= " true " />
" 4.5 " />
" true " targetFramework= " 4.5 " />
" Forms " >
" ~/Account/Login " timeout= " 2880 " />
namespace = " System.Web.Helpers " />
namespace = " System.Web.Mvc " />
namespace = " System.Web.Mvc.Ajax " />
namespace = " System.Web.Mvc.Html " />
namespace = " System.Web.Optimization " />
namespace = " System.Web.Routing " />
namespace = " System.Web.WebPages " />
" DefaultProfileProvider " type= " System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 " connectionStringName= " DefaultConnection " applicationName= " / " />
" DefaultMembershipProvider " >
" DefaultMembershipProvider " type= " System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 " connectionStringName= " DefaultConnection " enablePasswordRetrieval= " false " enablePasswordReset= " true " requiresQuestionAndAnswer= " false " requiresUniqueEmail= " false " maxInvalidPasswordAttempts= " 5 " minRequiredPasswordLength= " 6 " minRequiredNonalphanumericCharacters= " 0 " passwordAttemptWindow= " 10 " applicationName= " / " />
" DefaultRoleProvider " >
" DefaultRoleProvider " type= " System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 " connectionStringName= " DefaultConnection " applicationName= " / " />
" InProc " customProvider= " DefaultSessionProvider " >
" DefaultSessionProvider " type= " System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 " connectionStringName= " DefaultConnection " />
" false " />
" ExtensionlessUrlHandler-ISAPI-4.0_32bit " />
" ExtensionlessUrlHandler-ISAPI-4.0_64bit " />
" ExtensionlessUrlHandler-Integrated-4.0 " />
" ExtensionlessUrlHandler-ISAPI-4.0_32bit " path= " *. " verb= " GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS " modules= " IsapiModule " scriptProcessor= " %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll " preCondition= " classicMode,runtimeVersionv4.0,bitness32 " responseBufferLimit= " 0 " />
" ExtensionlessUrlHandler-ISAPI-4.0_64bit " path= " *. " verb= " GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS " modules= " IsapiModule " scriptProcessor= " %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll " preCondition= " classicMode,runtimeVersionv4.0,bitness64 " responseBufferLimit= " 0 " />
" ExtensionlessUrlHandler-Integrated-4.0 " path= " *. " verb= " GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS " type= " System.Web.Handlers.TransferRequestHandler " preCondition= " integratedMode,runtimeVersionv4.0 " />
" urn:schemas-microsoft-com:asm.v1 " >
" System.Web.Helpers " publicKeyToken= " 31bf3856ad364e35 " />
" System.Web.Mvc " publicKeyToken= " 31bf3856ad364e35 " />
" System.Web.WebPages " publicKeyToken= " 31bf3856ad364e35 " />
下面这里注释掉,否则会默认根据默认工厂来找
-->
--> -->
如果你还有其他的数据库类型,那么只需要在这里加配置即可
以上配置部分,斜体和红字的是我修改过的,其他都是项目自动产生的。
测试:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MySql.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.ComponentModel.DataAnnotations;
namespace MvcEFMySql.Controllers
{
// 这里是mysql的
public class MyContext : DbContext
{
public MyContext( string DefaultDb)
: base (DefaultDb)
{
// Database.DefaultConnectionFactory = MySql.Data.MySqlClient.MySqlClientFactory;
// Database.Connection.ConnectionString = ;
Database.SetInitializer ( null );
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// 已经存在的数据库,不然会出现负数
modelBuilder.Conventions.Remove ();
base .OnModelCreating(modelBuilder);
}
public DbSet user { get ; set ; }
}
// 这里是sqlserver的
public class SQLContext : DbContext
{
public SQLContext( string DefaultDb)
: base (DefaultDb)
{
// Database.DefaultConnectionFactory = MySql.Data.MySqlClient.MySqlClientFactory;
// Database.Connection.ConnectionString = ;
Database.SetInitializer ( null );
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// 已经存在的数据库,不然会出现负数
modelBuilder.Conventions.Remove ();
base .OnModelCreating(modelBuilder);
}
public DbSet category { get ; set ; }
}
public class DO_Category
{
public DO_Category() { }
[Key]
public Guid Id { get ; set ; }
///
/// 类目
///
public string Category { get ; set ; }
///
/// 图标
///
public string IconName { get ; set ; }
///
/// 排序
///
public int OrderIndex { get ; set ; }
///
/// 父节点
///
public Guid FatherId { get ; set ; }
public string CreateUser { get ; set ; }
public DateTime CreateTime { get ; set ; }
public string ModifyUser { get ; set ; }
public DateTime? ModifyTime { get ; set ; }
1438906181
public Byte[] RowVersion { get ; set ; }
}
public class User
{
public Guid Id { get ; set ; }
public string UserName { get ; set ; }
}
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
// Database.SetInitializer(new DropCreateDatabaseAlways ());
// 操作MySql数据库
var context = new MyContext( " DbConMySql " );
context.user.Add( new User { Id = Guid.NewGuid(), UserName = " jackchain " });
context.SaveChanges();
var userlist= context.user.ToList();
// 获取SQLServer数据库内容
var sqlc = new SQLContext( " DefaultDB " );
ViewBag.clist = sqlc.category.ToList();
return View(userlist);
}
}
}
ok尽情品味吧。EF6的webconfig稍加不同。重点还是webconfig配置
mysql中文乱码问题,请在连接串最后加: Character Set=utf8;
查看更多关于EntityFramework多数据库链接,MySql,SqlServer,Oracel等的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did97098