ASP.NET MVC4整合NHibernate,FluentNHibernate,MySQL数据库的应用

ASP.NET 使用 MySQL 数据库的正确操作流程 在 ASP.NET 中连接和操作 MySQL 数据库需要遵循一定的步骤。本文将详细介绍 ASP.NET 连接 MySQL 数据库的正确操作流程,并提供相应的源代码示例。通过以上步骤,你可以在 ASP.NET 中正确地连接和操作 MySQL 数据库。确保在实际使用时根据具体需求调整和扩展代码,以满足项目的要求。此外,还需要确保项目中已经引用了 MySQL 数据库的程序集,通常可以通过 NuGet 包管理器来安装和管理这些程序集。代码块中的内容后,连接将自动关闭,无需显式调用。在上述示例代码中,使用。 阅读详情

Models层的类:

	public abstract class Entity
	{
		public virtual int Id { get; set; }
	}
        public class Thingy : Entity
	{
		public virtual string Name { get; set; }
	}
HomeController类如下:
public class HomeController : Controller
	{
		private ISession _session;

		public HomeController(ISession session)
		{
			_session = session;
		}

		public ActionResult Index()
		{
			return View(_session.Query<Thingy>());
		}

		public ActionResult New()
		{
			return View();
		}

		[HttpPost]
		public ActionResult Create(Thingy thing)
		{
			_session.SaveOrUpdate(thing);
			return RedirectToAction("Index");
		}
	}
Global.asax的内容如下:
public class MvcApplication : System.Web.HttpApplication
	{
		public static void RegisterGlobalFilters(GlobalFilterCollection filters)
		{
			filters.Add(new HandleErrorAttribute());
		}

		public static void RegisterRoutes(RouteCollection routes)
		{
			routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

			routes.MapRoute(
				"Default",
				"{controller}/{action}/{id}",
				new { controller = "Home", action = "Index", id = UrlParameter.Optional }
			);
		}

		protected void Application_Start()
		{
            //设置指定的控制器工厂
			ControllerBuilder.Current.SetControllerFactory(new StructureMapControllerFactory());

			ObjectFactory.Initialize(x =>
			{
				x.For<ISessionFactory>()
					.Singleton()
					.Use(CreateSessionFactory());

				x.For<ISession>()
					.HttpContextScoped()
					.Use(context => context.GetInstance<ISessionFactory>().OpenSession());
			});

			AreaRegistration.RegisterAllAreas();

			RegisterGlobalFilters(GlobalFilters.Filters);
			RegisterRoutes(RouteTable.Routes);
		}

		protected void Application_EndRequest()
		{
			ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects();
		}

		protected ISessionFactory CreateSessionFactory()
		{
			string connectionString=ConfigurationManager.AppSettings["MYSQL_URI"];;
			var autoMap = AutoMap.AssemblyOf<Entity>()
				.Where(t => typeof(Entity).IsAssignableFrom(t));

			return Fluently.Configure()
				.Database(MySQLConfiguration.Standard.ConnectionString(connectionString))
                .Mappings(m => m.AutoMappings.Add(autoMap))  //FNT在映射的时候,分为Fluent Mapping(手动)和Auto Mapping(自动)两种方式
				.ExposeConfiguration(TreatConfiguration)
				.BuildSessionFactory();
		}

		protected virtual void TreatConfiguration(NHConfig.Configuration configuration)
		{
			var update = new SchemaUpdate(configuration);
			update.Execute(false, true);
		}
	}
StructureMapControllerFactory.cs
public class StructureMapControllerFactory : DefaultControllerFactory
	{
		public override IController CreateController(RequestContext requestContext, string controllerName)
		{
			try
			{
				var controllerType = base.GetControllerType(requestContext, controllerName);
				return ObjectFactory.GetInstance(controllerType) as IController;
			}
			catch (Exception)
			{
				return base.CreateController(requestContext, controllerName);
			}
		}
	}
Index.cshtml
@model IEnumerable<MySQLExample.Models.Thingy>

@{
	ViewBag.Title = "Index";
}

<h2>Index</h2>
<p>
	<a href="@Url.Action("New")">New thingy</a>
</p>
<ul>
	@foreach (var thing in Model)
	{
		<li>@thing.Name</li>
	}
</ul>
New.cshtml
@model MySQLExample.Models.Thingy

@{
	ViewBag.Title = "New";
}

<h2>New</h2>
<div>
	@using (Html.BeginForm("Create", "Home")){
		<p>
			@Html.LabelFor(x => x.Name)
			@Html.TextBoxFor(x => x.Name)
		</p>
		<p>
			<input type="submit" value="Submit" />
		</p>
	}
</div>
_Layout.cshtml

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<title>@ViewBag.Title</title>
	<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
</head>

<body>
	@RenderBody()
</body>
</html>



ASP.NET连接MYSQL的三种方法 方法一:   使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL   该组件为MYSQL为ADO.NET访问MYSQL数据库设计的.NET访问组件。   安装完成该组件后,引用命名空间MySql.Data.MySqlClient;   使用命令行编译时:csc /r:MySql.Data.dll test.cs 下载地址: http://dev.mysql.com/downloads/connector/net/1.0.html 方法二:   通过ODBC访问MYSQL数据库   访问前要先下载两个组件:odbc.net和MYSQL的ODBC驱动(MySQL Connector/ODBC (MyODBC) driver)目前为3.51版   安装完成后,即可通过ODBC访问MYSQL数据库 方法三:   使用CoreLab推出的MYSQL访问组件,面向.NET   安装完成后,引用命名空间:CoreLab.MySql;   使用命令编译时:csc /r:CoreLab.MySql.dll test.cs 立即下载

相关推荐

如何在.NET Core应用中使用NHibernate详解

前言 Nhibernate 来源于非常优秀的基于Java的Hibernate 关系型持久化工具。NHibernate 最近发布了 5.1.3 版本, 支持 .NET Standard 2.0 , 这意味着可以在 .NET Core 2.0 应用中使用, 本文就已 WebAPI 应用为例, 介绍一下如何在 .NET Core 应用中如何使用 NHibernate 。下面话不多说了,来一起看看详细的介绍的吧 使用方法如下: 1、 新建一个基于 .NET Core 的 Web API应用, 命令如下: mkir WebApiTest cd WebApiTest/ dotnet new webapi

ASP.NET之 用Mysql驱动连接数据库

用Mysql驱动连接数据库

qq_29848853的博客 1676

深度学习batch、batch_size、epoch、iteration以及小样本中episode、support set、query set关系

训练整个数据集是epoch、把数据集分为多少小块就是batch,每个小块(batch)多少个数据就是batch_size,整个数据集需要训练多少轮是iteration

qq_42740834的博客 1610

VS2022 ASP.NET(C#)连接mysql 数据库进行数据增删改查

VS2022 ASP.NET(C#)连接mysql 数据库进行数据增删改查

ttxs_10的博客 5906

【电路设计】带阻滤波器实战:从理论到Twin-T陷波电路实现

本文详细介绍了带阻滤波器的原理与Twin-T陷波电路的实战应用,从基础概念到工程实现全面解析。通过具体案例展示如何设计高Q值滤波器,解决电源噪声等实际问题,并分享PCB布局和元件选型的实用技巧,助力工程师提升电路设计能力。

gg901的博客 1011

【WorkBuddy从入门到精通实战教程】实战案例 第 41 章 论文阅读与文献综述

本文系统讲解如何用WorkBuddy高效阅读论文并撰写文献综述。针对“读了一天没记住”的痛点,提出“三遍阅读法”:快速评估相关性、结构化提炼核心内容、批判性分析局限。结合提示词工程,实现单篇精读、多篇对比与综述框架搭建,显著提升效率。强调学术诚信,严防AI幻觉,要求所有引用与数据必须回源核对。最终目标是借助AI辅助理解与组织,但坚持自主思考与写作,真正掌握科研能力。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 135

ASP.NET 连接MySQL数据库 详细步骤

需要说明的是,如果在正常安装MySQL数据库后,又更新了MySQL Connector/Net组件,则会出现版本不同的问题,这需要将ASP.NET中machine.config里面关于MySQL引用MySQL Connector/Net组件版本的语句注释掉即可;使用这种办法取出连接字符串并建立对数据库的连接,今后的使用直接调用该方法创建对MySQL数据库的连接,并使用ADO.NET完成任务。MySQL是一个优秀的开源数据库,现在谈谈如何使用ASP.NET连接MySQL数据库(Windows环境下)。

caoyongsheng的博客 2697

Java 部分笔试题解析

合法的 try 语句块必须包含 try 块,并且至少包含一个 catch 块或一个 finally 块。给定一个长度为n的数组,数组中的每个元素,表示一根水管的长度,水管可以在任意位置锯开。调用 sleep() 方法、创建新线程、高优先级线程进入就绪状态只会暂停或抢占线程的执行,而不会终止线程的运行。A.抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法。接口中的成员变量必须是常量(static final),而抽象类可以有普通成员变量。

博客 2574

ASP.NET连接MySQL数据库

https://blog.csdn.net/qq_33548747/article/details/80559792?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-2 ASP....

ba_wang_mao的专栏 3023

k230 +canMV+ LVGL控件 仿手表表盘触摸屏滚动、选中后弹窗效果完整示例程序

现在智能手表用的越来越多,其交互方式比较有特点,现在k230开发板上,基于LVGL(Light and Versatile Graphics Library)编写一个嵌入式GUI应用程序,使用LVGL配合触摸屏实现模仿智能手表的表盘滚动效果,实际效果如下:程序使用LVGL图形库和MediaManager程序,创建带有触摸屏交互的GUI应用。程序主要功能包括显示初始化、LVGL初始化、创建GUI界面(包含一个可滚动的按钮列表,每个按钮点击会弹出消息框),以及处理触摸屏输入。

weixin_47446386的博客 1175

7、RNA 二级结构预测:包含接吻发夹基序的新策略

本文提出三种用于预测RNA二级结构中接吻发夹基序的新策略,结合规范化规则与非歧义动态规划,分别在时间与空间复杂度之间进行权衡。策略A以O(n⁴)时间和O(n²)空间实现高效预测;策略B通过存储次优结果扩大搜索空间,空间复杂度升至O(n³);策略C全面探索组合可能,时间复杂度为O(n⁵),但保持O(n²)空间。实验表明不同策略适用于不同复杂度的序列,为RNA结构预测提供了灵活且可扩展的解决方案。

j7k8l的博客 132

asp.net mvc4 mysql_ASP.NET MVC4整合NHibernate,FluentNHibernate,MySQL数据库的应用

Models层的类:public abstract class Entity{public virtual int Id { get; set; }}public class Thingy : Entity{public virtual string Name { get; set; }}HomeController类如下:public class HomeController : Control...

weixin_30811007的博客 158

探索如何利用CST和ADS进行DDR的SIPI联合仿真

本文系统介绍了CST和ADS两款工具进行DDR信号完整性/电源完整性(SI/PI)联合仿真的方法。CST采用工作室协同方式,通过PCB布局导入、材料设置、模型分配等步骤,重点分析了电源阻抗优化和信号波形质量。ADS则利用SIPro、PIPro等专用工具,突出系统级验证和自动化优化功能。两者各有优势:CST擅长3D结构精确建模,ADS更适于快速系统验证。文章建议可根据项目需求混合使用两种工具,并提供了模型简化、频带选择等实用技巧。通过对比分析,为工程师选择仿真工具提供了决策参考。

一只豌豆象的博客 1148

mysql 索引越界,(fluent)nhibernate复合id问题:mysql抱怨参数索引越界

我正在使用FluentNHibernate创建一个ASP.NET MVC项目,由用户提交和投票(向上/向下)。当然,用户可以向上或向下投票提交。为了记录这一点,我创建了一个中间表SubmissionVote,其中包含以下字段:submissionId (int)userId (int)score (enum: up/down)以下是我的映射:提交Id(x => x.Id);...Refere...

weixin_33610601的博客 220

从零构建法律案例数据库:Python爬虫实战与法律文本挖掘全攻略

在当今数字化浪潮席卷全球的背景下,法律行业正经历着前所未有的变革。法律案例数据库作为法律大数据的重要组成部分,已经成为法律从业者、研究人员、法学院学生乃至企业法务部门的必备工具。然而,商业法律数据库如北大法宝、威科先行、LexisNexis等往往价格不菲,且数据访问受限。对于个人研究者或小型机构而言,构建一个定制化的法律案例数据库不仅能节省成本,更能根据特定研究需求灵活调整数据结构。

2201_76125261的博客 537

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

NHibernate一个完整的例子

准备开发环境 操作系统:Windows Vista, Windows 7, Windows Server 2003 或 Windows Server 2008 IDE:VS 2010 Professional, VS C# 2010 Express 或 VS Basic 2010 Express 如果不使用Visual Studio,可以使用开源的IDE: MonoDevelop,它是

eqera的专栏 7797

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

NHibernate初学者指南(2):一个完整的例子

准备开发环境 操作系统:Windows Vista, Windows 7, Windows Server 2003 或 Windows Server 2008 IDE:VS 2010 Professional, VS C# 2010 Express 或 VS Basic 2010 Express 如果不使用Visual Studio,可以使用开源的IDE: MonoDevelop,它是...

weixin_33816300的博客 274

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

How-To: Using the N* stack, part 1

虽然在微软自带的模板中已经存在了这个文件夹,不过我们不会使用该文件夹,因为我认为我们最好应该将 Controller 从网站中分离出来。这个是最主要的项目,它包括解决方案中所需要的所有接口和模型,同时需要注意 Core 项目中不会包含任何实现部分,实现部分应该放在单独的,容易替换的程序集中。在你的解决方案目录中创建一个项目中所用到的所有第三方类库的目录。其次,请注意项目的名称后面包含 .Web ,和方案名称不是相同的。在解决方案中添加一个新的类库项目,并将名字改为 NStackExample.Core。

UYxp0LRd8的博客 223

【翻译】How-To: Using the N* stack, part 1

原文作者:Jason原文地址:http://jasondentler.com/blog/2009/08/how-to-using-the-n-stack-part-1/注:这是我第一次翻译文章,而且英文水平一般,如果大家发现那里有错误,请及时和我联系,谢谢。这是一个关于NHibernate的系列文章,将带你一步步的从你的第一个ASP.NET MVC网站到一个登记社区学院学生工作的Web应用程序。更...

weixin_30834783的博客 83

asp.net mysql_ASP.NET 访问 MySql

要使用 ASP.NET 来连接 MySql 数据库的话,您必须要有访问 MySql 的驱动程序,当然您完全可以使用 ODBC 来完成对 MySql 的访问,但是呢,和访问其他数据库一样,使用 ODBC 在一定的程度上会有效率较低的问题,所以一般情况下是不使用 ODBC 访问 MySql 数据库的,相比之下,您可以选择使用由 MySql 提供的专门针对 .NET 访问 MySql 提供的驱动程序,也...

weixin_39957027的博客 385

ASP.NET |日常开发中连接Mysql数据库增删改查详解

ASP.NET |日常开发中连接Mysql数据库增删改查详解,在ASP.NET日常开发中,连接MySQL数据库并进行增删改查(CRUD)操作是一个常见的任务。为了实现这一功能,你通常需要使用一个MySQL数据库驱动程序,比如MySql.Data.MySqlClient,它是MySQL官方提供的.NET驱动程序。以下是一个详细的步骤指南,介绍如何在ASP.NET应用程序中连接MySQL数据库并执行CRUD操作。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 1457

c asp.net mysql.dll_ASP.net连接mysql数据库(使用MySql.Data.dll)

以前用ASP.net做web网站时用的都是sqlserver 数据库,也没有了解用mysql如何连接,遂今天试了下,多余就不说了,直接上步骤了。首先我采用的是MySql.Data.dll这种方式连接数据库,我把放在百度云上了,大家可以下载:http://pan.baidu.com/s/1o78bql0mysql的安装我就不多说了,傻瓜式安装即可,这里推荐一个可视化工具可以方便看到数据库里的表:为了...

weixin_36078604的博客 305

netcore 使用NHibernate

三、操作数据WeatherForecastController.cs。

码农的专栏 514

ASP.NET连接MYSQL的三种方法详解

ASP.NET连接MYSQL的三种方法详解 去发现同类优质开源项目:https://gitcode.com/ 本文档详细介绍了三种在ASP.NET环境下连接MYSQL数据库的方法,旨在帮助开发者根据实际需求选择合适的连接方式。 方法一:使用MySQL Connector/Net MySQL Connector/Net 是 MYSQL 官方推出的 ADO.NET 驱动,专门为.NET环境下访问 MY...

gitblog_06749的博客 1132

推荐NHibernate Core:一款强大的.NET ORM框架

推荐NHibernate Core:一款强大的.NET ORM框架 nhibernate-coreNHibernate Object Relational Mapper项目地址:https://gitcode.com/gh_mirrors/nh/nhibernate-core 项目简介 是一款开源的面向对象持久化框架,用于.NET应用程序中。它提供了灵活的数据访问层,使得开发人员可以更加专注于业...

gitblog_00024的博客 630
上一篇: C#代码CRUD操作MySQL数据库
下一篇: SqlServer与MongoDB结合使用NHibernate
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值