Tag: nhibernate

如何在Fluent NHibernate中更改小数的默认比例和精度?

在我正在构建的应用程序中,我有许多十进制字段,需要从数据库映射特定的精度和比例。 我可以通过使用Precision()和Scale()方法来实现这一点: public class ClassAMap : ClassMap { public ClassAMap () { Map(x => x.Value).Precision(22).Scale(12); } } 有没有办法更改小数的默认精度和小数位数,所以我不需要记得为每个小数映射添加对Precision()和Scale()的调用?

NHibernateexception:事务未连接或已断开连接

在我们的开发环境中,所有ASP.NET应用程序都运行良好。 但是,当我在测试机器上部署站点时,在某些页面上我得到了以下exception: NHibernate.TransactionException: Transaction not connected, or was disconnected at NHibernate.Transaction.AdoTransaction.CheckNotZombied() in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Transaction\AdoTransaction.cs:line 406 at NHibernate.Transaction.AdoTransaction.Rollback() in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Transaction\AdoTransaction.cs:line 240 我不知道如何解决这个问题。 唯一的区别是数据库版本:开发:10.0.5500(2008 R2,SP1,Express)测试:10.0.5500(2008,SP3) 有人知道这里发生了什么吗?

从实体获取单列

如何从查询而不是整个对象中获取单个列? 我可以做这样的事情来获得整个对象,但我想要的只是名字: IList tribbles = session.CreateCriteria(typeof(Tribble)).List(); IList names = new List(); foreach (Tribble t in tribbles) { names.Add(t.Name); } 我希望能够指定其他条件,那么是否可以排除某些列被检索?

NHibernate CreateSQLQuery

我试图用NH CreateSQLQuery方法获取一些数据 IList LCollection = sess.CreateSQLQuery(@”select * from some_schema.logistic”) .SetResultTransformer(Transformers.AliasToBean(typeof(Logistic))) .List(); 后勤课是 public class Logistic { public virtual long? l_id { get; set; } public virtual long? carrier_id { get; set; } … } 制图 public class LogisticMap : ClassMap { public LogisticMap() { Table(“some_chema.logistic”); Id(x => x.l_id).GeneratedBy.Sequence(“some_chema.logistic_sq”); Map(x => x.carrier_id); … } } 但我有错误 […]

在SqlBulkCopy中使用NHibernate事务

我正在使用NHibernate存储一些数据,我需要插入大量数据作为此操作的一部分 – 即在同一事务中。 代码如下所示: using (ISession session = NHibernateHelper.OpenSession()) using (ITransaction transaction = session.BeginTransaction()) { session.SaveOrUpdate(something); // … SqlBulkCopy bulkCopy = new SqlBulkCopy( (SqlConnection)session.Connection, SqlBulkCopyOptions.CheckConstraints | SqlBulkCopyOptions.FireTriggers, ???transaction??? ); //… transaction.Commit(); } 我知道我可以使用TransactionScope或以其他方式使用它。 但我坚持这种模式。 让我们假装为了独立的DB访问(如果我提取并注入任意批量插入操作)。 有没有办法如何从NHibernate.ITransaction获取SqlTransaction实例? 谢谢

问题NHibernate,Fluent NHibernate和Iesi.Collection。 接下来你会尝试什么?

我对NHibernate非常陌生,所以如果我在这里遗漏了一些微不足道的话我会道歉。 我目前正在编写一本名为“NHibernate 3初学者指南”的书,来自packtpub。 我大多数都遵循书中的指示。 当我说大多数情况下,我已经使用MySQL而不是MSSQL,并且一直在使用NuGet,而不是手动下载二进制文件。 我现在在第2章,这是第一个真正的编码章节。 在本章中,我将构建一个简单的WPF应用程序,通过单击按钮来构建我的数据库模式。 我已经为本章中指定的Product和Category类构建了一些POCO。 通过NuGet我添加了以下参考: MySQL.Data NHibernate(作为依赖自动解析,Iesi.Collections) 流利的NHibernate 当我单击按钮构建我的数据库时,执行以下代码块: private const string connString = “string omitted for brevity”; private void btnCreateDatabase_Click(object sender, RoutedEventArgs e) { Fluently.Configure().Database(MySQLConfiguration.Standard.ConnectionString(connString)) .Mappings(m => m.FluentMappings.AddFromAssemblyOf()) .ExposeConfiguration(CreateSchema) .BuildConfiguration(); } 单击按钮后,我收到以下exception( FileLoadException ): 外部exception消息: Could not load file or assembly ‘Iesi.Collections, Version=4.0.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4’ or one of its dependencies. […]

如何通过Fluent NHibernate添加事件监听器?

我想添加一个事件监听器( IPreUpdateEventListener )来添加NHibernate但是在使用流畅的配置时我似乎无法找到一个例子。 我希望能够在创建会话工厂时添加侦听器,例如,当执行以下代码时。 _sessionFactory = Fluently.Configure() .Database(MsSqlConfiguration.MsSql2005.ConnectionString(connectionString).ShowSql()) .Mappings(m => m.FluentMappings.AddFromAssemblyOf()) .BuildSessionFactory(); 有人知道怎么做吗?

流利的nHibernate,IDictionary混乱

使用以下类.. public class Trait { public virtual int Id { get; set; } public virtual string Name { get; set; } } public class Sheet { public virtual int Id { get; set; } public virtual IDictionary Influences { get; set; } } 我试图使用Fluent nHibernate映射它们,因此。 public class TraitMap : ClassMap { public TraitMap() { Id(x […]

NHibernate多对多关系问题:可以选择,无法更新

每个用户都有一个角色列表: 我正在跟踪SQL服务器的所有查询。 当我选择用户时,我也看到了SQL SELECT语句(这是好的)。 问题是当我尝试更新现有用户(具有角色)时:我只看到User表的更新,但没有User_Role (这是坏的)。 澄清一下:我不希望在Role表中插入/更新(但在User_Role ,因为角色是“永久的”并且可以自由地附加和分离。 为什么选择正常,但不更新 。 请? 如果需要更多信息 – 请问 – 我会尝试回答所有次要问题。 更新: Role映射: 更新N2:这是表的定义方式: Role表: CREATE TABLE [Roles] ( [Id] INTEGER NOT NULL PRIMARY KEY, [Name] text NOT NULL, [LastChanged] INT NOT NULL DEFAULT(0) ); CREATE UNIQUE INDEX uidxUserName ON Roles (Name COLLATE NOCASE); User表: CREATE TABLE [Users] ( [Id] […]

Lucene.NET通过NHibernate.Search和POCO实体

无论如何在通过NHibernate.Search与Lucene.NET合作时保留真正的POCO实体? 似乎Lucene.NET(NHibernate.Search)映射只能在Entity类中使用Attributes。