我有一个记录一些数据的存储过程,如何使用NHibernate调用它?到目前为止我有:ISessionsession=....IQueryquery=session.CreateQuery("execLogData@Time=:time@Data=:data");query.SetDateTime("time",time);query.SetString("data",data);query.?????;方法??????应该是什么?还是在做一些更根本性的错误? 最佳答案 SQL查询上的ExecuteUpdate应该对您有帮助。示例:I
我已阅读有关为什么强烈建议在NH中对读取操作使用事务的文档和解释。但是,我还没有完全“相信”它。有人可以在不告诉我RTFM的情况下尝试解释一下吗,我已经做过了?;) 最佳答案 Thispostfromoneoftheauthors可能有你的答案:Evenifweareonlyreadingdata,wewanttouseatransaction,becauseusingatransactionensurethatwegetaconsistentresultfromthedatabase.NHibernateassumethatall
我已阅读有关为什么强烈建议在NH中对读取操作使用事务的文档和解释。但是,我还没有完全“相信”它。有人可以在不告诉我RTFM的情况下尝试解释一下吗,我已经做过了?;) 最佳答案 Thispostfromoneoftheauthors可能有你的答案:Evenifweareonlyreadingdata,wewanttouseatransaction,becauseusingatransactionensurethatwegetaconsistentresultfromthedatabase.NHibernateassumethatall
我将NHibernate用于我的数据访问,有一段时间我一直在使用SQLite进行本地集成测试。我一直在使用一个文件,但我想我会放弃:memory:选项。当我启动任何集成测试时,数据库似乎已创建(NHibernate吐出表创建sql)但与数据库交互会导致错误。有没有人用过NHibernate来处理内存数据库?有可能吗?我使用的连接字符串是这样的:DataSource=:memory:;Version=3;New=True 最佳答案 SQLite内存数据库仅在与其连接保持打开时才存在。要在NHibernate的单元测试中使用它:1.在测
我将NHibernate用于我的数据访问,有一段时间我一直在使用SQLite进行本地集成测试。我一直在使用一个文件,但我想我会放弃:memory:选项。当我启动任何集成测试时,数据库似乎已创建(NHibernate吐出表创建sql)但与数据库交互会导致错误。有没有人用过NHibernate来处理内存数据库?有可能吗?我使用的连接字符串是这样的:DataSource=:memory:;Version=3;New=True 最佳答案 SQLite内存数据库仅在与其连接保持打开时才存在。要在NHibernate的单元测试中使用它:1.在测
我有一个NHibernatesession。在此session中,我执行了1个操作,即运行此代码以获取列表:publicIListGetCustomerByFirstName(stringcustomerFirstName){return_session.CreateCriteria(typeof(Customer)).Add(newNHibernate.Expression.EqExpression("FirstName",customerFirstName)).List();}我在HttpRequest的末尾调用Session.Flush(),我得到了一个HibernateAdoE
我有一个NHibernatesession。在此session中,我执行了1个操作,即运行此代码以获取列表:publicIListGetCustomerByFirstName(stringcustomerFirstName){return_session.CreateCriteria(typeof(Customer)).Add(newNHibernate.Expression.EqExpression("FirstName",customerFirstName)).List();}我在HttpRequest的末尾调用Session.Flush(),我得到了一个HibernateAdoE
当你在fluentNHibernate中设置一个字符串值时,它总是将DB值设置为Nvarchar(255),我需要存储相当多的基于用户输入的长字符串,而255是不切实际的。补充一下,这是自动映射器的一个问题,因为我正在使用流畅的NHibernate来构建数据库。 最佳答案 添加此约定会将字符串属性的默认长度设置为10000。正如其他人所指出的,这将是一个nvarchar(max)列。publicclassStringColumnLengthConvention:IPropertyConvention,IPropertyConvent
当你在fluentNHibernate中设置一个字符串值时,它总是将DB值设置为Nvarchar(255),我需要存储相当多的基于用户输入的长字符串,而255是不切实际的。补充一下,这是自动映射器的一个问题,因为我正在使用流畅的NHibernate来构建数据库。 最佳答案 添加此约定会将字符串属性的默认长度设置为10000。正如其他人所指出的,这将是一个nvarchar(max)列。publicclassStringColumnLengthConvention:IPropertyConvention,IPropertyConvent
我有一个沿着这条线的映射。现在数据库中mdm_field表中的field_id有时会有一个相关key_field表中不存在的值,所以基本上是破坏了参照完整性。因此,当我加载实体时,出现错误“不存在具有给定标识符的行”。我如何配置映射以适应这种情况,使其不会在这种情况下死亡。 最佳答案 好的,我找到了答案。添加not-found="ignore"属性KeyField: 关于c#-nHibernate,不存在具有给定标识符的行,我们在StackOverflow上找到一个类似的问题: