C#中通过映射对MySQL数据进行操作
2016-11-17 13:57
465 查看
首先,C#中通过映射对MySQL数据进行操作需要导入:FluentNHibernate.dll和NHibernate.dll这两个程序集;引用方法:
![](http://img.blog.csdn.net/20161117133949588?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
选择联机搜索,然后点击安装就可以了;右键添加新项目,添加一个NhibernateHelper类用来打开MySQL会话,代码如下;
![](http://img.blog.csdn.net/20161117135236936?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
再添加一个映射类TestUserMap,需要用到命名空间:using FluentNHibernate.Mapping;
选择联机搜索,然后点击安装就可以了;右键添加新项目,添加一个NhibernateHelper类用来打开MySQL会话,代码如下;
class NhibernateHelper { private static ISessionFactory sessionFactory = null; private static void InitSessionFactory() {
//FluentConfiguration fConfig = Fluently.Configure(); //MySQLConfiguration mySQLConfig=MySQLConfiguration.Standard.ConnectionString(db => db.Server("localhost").Database("taidou").Username("root").Password("root")); //sessionFactory=fConfig.Database(mySQLConfig).Mappings(x => x.FluentMappings.AddFromAssemblyOf<NhibernateHelper>()).BuildSessionFactory(); sessionFactory = Fluently.Configure().Database(MySQLConfiguration.Standar d.ConnectionString(db=>db.Server("localhost").Database("taidou").Username("root").Password("root"))).Mappings(x=>x.FluentMappings.AddFromAssemblyOf<NhibernateHelper>()).BuildSessionFactory();//连接MySQL数据库 } private static ISessionFactory SessionFactory { get { if (sessionFactory == null) InitSessionFactory(); return sessionFactory; } } public static ISession OpenSession() { return SessionFactory.OpenSession(); //打开Session会话 } }然后再添加一个对数据库数据进行操作的类: TestUserManager
class TestUserManager { public IList<TestUser> GetAllUser() //获得用户表中的所有数据 { using (var session = NhibernateHelper.OpenSession()) { using (var transaction = session.BeginTransaction()) { var userList = session.QueryOver<TestUser>(); transaction.Commit(); //提交操作 return userList.List(); } } } public IList<TestUser> GetUserByUsername(string username) //根据username查找数据 { using (var session = NhibernateHelper.OpenSession()) { using (var transaction = session.BeginTransaction()) { var userList = session.QueryOver<TestUser>().Where(user => user.Username == username); transaction.Commit(); return userList.List(); } } } public void SaveUser(TestUser user) //添加user并保存到数据库,相当于添加数据; { using (var session = NhibernateHelper.OpenSession()) { using (var transaction = session.BeginTransaction()) { session.Save(user); transaction.Commit(); } } } public void UpdateUser(TestUser user) //更新修改后的数据 { using (var session = NhibernateHelper.OpenSession()) { using (var transaction = session.BeginTransaction()) { session.Update(user); transaction.Commit(); } } } public void DeleteById(int id) //根据ID删除数据; { using (var session = NhibernateHelper.OpenSession()) { using (var transaction = session.BeginTransaction()) { TestUser tu = new TestUser(); tu.Id = id; session.Delete(tu); transaction.Commit(); } } } }添加一个类,类名为TestUser,其中的方法要与数据库表中字段一致,方便映射:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MyServer.Model { class TestUser { public virtual int Id { get; set; } public virtual string Username { get; set; } public virtual string Password { get; set; } public virtual int Age { get; set; } } }
再添加一个映射类TestUserMap,需要用到命名空间:using FluentNHibernate.Mapping;
using FluentNHibernate.Mapping; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MyServer.Model.Mapping { class TestUserMap:ClassMap<TestUser> { public TestUserMap()//这里的x时textuser对象; { Id(x => x.Id).Column("Id");//设置Id属性为主键,column为匹配数据库字段 Map(x => x.Username).Column("username"); Map(x => x.Password).Column("password"); Map(x => x.Age).Column("age"); Table("testuser"); } } }好了,暂时就这么多方法,后续再更新,用的时候来学习一下就不会忘记啦!!!
相关文章推荐
- C#通过MySqlHelper进行多条数据查询
- 通过Mysql数据文件进行数据库还原
- C#操作Excel,套用模板并对数据进行分页
- 基于半边数据结构(翼边数据结构)的Eular操作来实现扫成 通过OpenGL进行CAD实体建模 经测试可直接运行
- 通过Delete触发器对数据进行删除操作
- !!c# 委托与多线程 -- 相比background来说,本方法针对当需要通过异步代理发起UI操作,而后线程中进行sleep操作的时使用
- 对DataGridView进行添加、修改、删除数据操作----C#
- Android 连接Mysql进行相关操作——用PHP做中介以及JSON做数据交换
- Spring中使用getSession()与通过HibernateTemplate进行数据操作的差别
- C#操作Excel,套用模板并对数据进行分页
- 通过insert型触发器对员工数据进行添加操作
- C#对DataGridView中的数据进行添加、修改、删除操作
- C#.Net 4 通过映射读取DbDataReader中的数据
- 第2章_基本数据类型和基本操作_编程练习Exercise2.7通过创建窗口进行大小写的切换
- C#对DataGridView中的数据进行添加、修改、删除操作c#操作datatable
- C#通过一个密码对文件进行加密解密操作
- 用VC++2005调用用ASP.NET(C#)做的WebSerice接口进行操作数据库
- C#对DataGridView进行添加、修改、删除数据操作
- C#对DataGridView中的数据进行添加、修改、删除操作
- C#操作Excel中的数据进行计算