以下是自己做的一些笔记和记录,为了不用每次做东西都东找西找,很多东西都是从网上取别人成果的,做个记录留这自己看看把,把资料也上传一下!大家看了也不要拍我!
首先先整合持久层下载Fluent Nhibernate https://github.com/jagregory/fluent-nhibernate
这个fluent是一个不错的东西,不需要写很多配置文件,但是实体和MAPPING还是要写比较麻烦,找了很久好到了一个
NHibernate Mapping Generator 实体生产工具 可以选择fluent mapping 方式 下载 http://nmg.codeplex.com/ 虽然一对多,多对多,多对一关系生成出来有些问题,但是还是可以生成一部分的。有些小部分的调整就OK了,如果大家有更好的可以告诉一下我,谢谢了!
MSSQL2008配置如下:
Fluently.Configure() .Database( FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2008.ShowSql() .ConnectionString(s => s.Server("LOCALHOST\\SQLEXPRESS") .Database"***").Username("sa").Password("sql") .TrustedConnection()) ).Mappings(m => m.FluentMappings.AddFromAssembly(typeof(BaseEntity).Assembly)) .BuildSessionFactory();
MYSQL配置如下
return Fluently.Configure(). .Database( FluentNHibernate.Cfg.Db.MySQLConfiguration.Standard .ConnectionString("server=localhost;user id=root; password=root; database=***; pooling=false;charset=utf8") .ShowSql().FormatSql()).Mappings(m => m.FluentMappings.AddFromAssembly(typeof(BaseEntity).Assembly)) .BuildSessionFactory();
typeof(BaseEntity).Assembly里面BaseEntity是生成实体类所在的项目或类库里面的一个类。
OK!连接成功!
定义一个IRepository public interface IRepository<T> where T:BaseEntity { T Load(string id); T Get(string id); IList<T> GetAll(); void SaveOrUpdate(T entity); void Update(T entity); void Delete(string id); void PhysicsDelete(string id); }
其他实体继承一下BaseEntity就可以灵活运用了!