以下是自己做的一些笔记和记录,为了不用每次做东西都东找西找,很多东西都是从网上取别人成果的,做个记录留这自己看看把,把资料也上传一下!大家看了也不要拍我!
首先先整合持久层下载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就可以灵活运用了!