C# 4.0 是否可以在c中仅将NHibernate与数据集一起使用#
对不起,如果这是一个愚蠢的问题。是否可以将NHibernate与c#中的数据集一起使用?我的意思是,我不打算拥有任何数据库,但会在数据表或数据行触发事件时更新我的其他应用程序。我希望将hibernate映射到这些数据集表,并希望对事件处理程序使用静态实现。因此,可以在具有多个事件处理程序的单个静态类中跟踪对数据集的所有更改。因此,除了我对其他应用程序的更新之外,我想使用NHibernate。我认为您的问题可能需要更多的澄清,以添加更多的细节,但我将给出我的想法 基础 基本上,NHibernate是一个对象关系映射器,也就是说,它将持久性模型映射到(无论您选择的数据库是什么)表和it字段,反之亦然 您真正要做的是不让数据库由NHibernate支持,而是将此行为更改为使用DataTables/DataRows。这可以通过大量的黑客和管道系统来实现,但如果我是你,我会尽力避免这种情况 一种方法 最简单的方法是使用基于文件或内存中的持久性表示,例如SQLite或SQLServerExpress。我使用内存中的SQLite进行NHibernate持久性单元测试 您可能需要将NHibernate(使用FluentNHibernate)配置为使用SQLite数据库:C# 4.0 是否可以在c中仅将NHibernate与数据集一起使用#,c#-4.0,nhibernate,dataset,nhibernate-mapping,fluent-nhibernate-mapping,C# 4.0,Nhibernate,Dataset,Nhibernate Mapping,Fluent Nhibernate Mapping,对不起,如果这是一个愚蠢的问题。是否可以将NHibernate与c#中的数据集一起使用?我的意思是,我不打算拥有任何数据库,但会在数据表或数据行触发事件时更新我的其他应用程序。我希望将hibernate映射到这些数据集表,并希望对事件处理程序使用静态实现。因此,可以在具有多个事件处理程序的单个静态类中跟踪对数据集的所有更改。因此,除了我对其他应用程序的更新之外,我想使用NHibernate。我认为您的问题可能需要更多的澄清,以添加更多的细节,但我将给出我的想法 基础 基本上,NHibernate
ISessionFactory _sessionFactory = Fluently.Configure()
.Database(SQLiteConfiguration.Standard.InMemory().ShowSql())
.Mappings(m => m.FluentMappings.AddFromAssembly(assemblyContainingMappedType))
//.Mappings(m => m.AutoMappings.Add(AutoMap.Assembly(assemblyContainingMappedType)))
.ExposeConfiguration(cfg => _configuration = cfg)
#if DEBUG
.Diagnostics(d => d.Enable())
.Diagnostics(d => d.OutputToConsole())
#endif
.BuildSessionFactory();
这样您就有了一个ISessionFactory
实例。现在,通过使用Fluent映射,只需执行:
ISession _session = _sessionFactory.OpenSession();
new SchemaExport(_configuration).Execute(true, true, false, _session.Connection, Console.Out);
现在您已经启动并运行了内存中的SQLite。您唯一需要实现的就是使用NHibernate的会话
(例如:\u session.Save()
)来处理数据库,并让存储库或查询返回数据集
或数据表