草庐IT

Fluent-NHibernate

全部标签

c# - 使用 SQLite :memory: with NHibernate 时出现问题

我将NHibernate用于我的数据访问,有一段时间我一直在使用SQLite进行本地集成测试。我一直在使用一个文件,但我想我会放弃:memory:选项。当我启动任何集成测试时,数据库似乎已创建(NHibernate吐出表创建sql)但与数据库交互会导致错误。有没有人用过NHibernate来处理内存数据库?有可能吗?我使用的连接字符串是这样的:DataSource=:memory:;Version=3;New=True 最佳答案 SQLite内存数据库仅在与其连接保持打开时才存在。要在NHibernate的单元测试中使用它:1.在测

c# - 使用 SQLite :memory: with NHibernate 时出现问题

我将NHibernate用于我的数据访问,有一段时间我一直在使用SQLite进行本地集成测试。我一直在使用一个文件,但我想我会放弃:memory:选项。当我启动任何集成测试时,数据库似乎已创建(NHibernate吐出表创建sql)但与数据库交互会导致错误。有没有人用过NHibernate来处理内存数据库?有可能吗?我使用的连接字符串是这样的:DataSource=:memory:;Version=3;New=True 最佳答案 SQLite内存数据库仅在与其连接保持打开时才存在。要在NHibernate的单元测试中使用它:1.在测

c# - NHibernate Session.Flush() 在没有发生更新时发送更新查询

我有一个NHibernatesession。在此session中,我执行了1个操作,即运行此代码以获取列表:publicIListGetCustomerByFirstName(stringcustomerFirstName){return_session.CreateCriteria(typeof(Customer)).Add(newNHibernate.Expression.EqExpression("FirstName",customerFirstName)).List();}我在HttpRequest的末尾调用Session.Flush(),我得到了一个HibernateAdoE

c# - NHibernate Session.Flush() 在没有发生更新时发送更新查询

我有一个NHibernatesession。在此session中,我执行了1个操作,即运行此代码以获取列表:publicIListGetCustomerByFirstName(stringcustomerFirstName){return_session.CreateCriteria(typeof(Customer)).Add(newNHibernate.Expression.EqExpression("FirstName",customerFirstName)).List();}我在HttpRequest的末尾调用Session.Flush(),我得到了一个HibernateAdoE

c# - 使用 Entity Framework 6.1 fluent API 创建唯一索引

我有一列“名称”,它必须是唯一的。没有外键或类似的东西。EF6.1终于支持通过注释创建此类索引。这已经在SO上讨论过了。但似乎只能通过类中的注释来完成。如何仅使用FluentAPI来做到这一点?像这样:publicclassPersonConfiguration:EntityTypeConfiguration{publicPersonConfiguration(){HasKey(p=>p.Id);Property(p=>p.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);//notpossible?Ind

c# - 使用 Entity Framework 6.1 fluent API 创建唯一索引

我有一列“名称”,它必须是唯一的。没有外键或类似的东西。EF6.1终于支持通过注释创建此类索引。这已经在SO上讨论过了。但似乎只能通过类中的注释来完成。如何仅使用FluentAPI来做到这一点?像这样:publicclassPersonConfiguration:EntityTypeConfiguration{publicPersonConfiguration(){HasKey(p=>p.Id);Property(p=>p.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);//notpossible?Ind

c# - 覆盖长文本字符串的流利 NHibernate nvarchar(MAX) 而不是 nvarchar(255)

当你在fluentNHibernate中设置一个字符串值时,它总是将DB值设置为Nvarchar(255),我需要存储相当多的基于用户输入的长字符串,而255是不切实际的。补充一下,这是自动映射器的一个问题,因为我正在使用流畅的NHibernate来构建数据库。 最佳答案 添加此约定会将字符串属性的默认长度设置为10000。正如其他人所指出的,这将是一个nvarchar(max)列。publicclassStringColumnLengthConvention:IPropertyConvention,IPropertyConvent

c# - 覆盖长文本字符串的流利 NHibernate nvarchar(MAX) 而不是 nvarchar(255)

当你在fluentNHibernate中设置一个字符串值时,它总是将DB值设置为Nvarchar(255),我需要存储相当多的基于用户输入的长字符串,而255是不切实际的。补充一下,这是自动映射器的一个问题,因为我正在使用流畅的NHibernate来构建数据库。 最佳答案 添加此约定会将字符串属性的默认长度设置为10000。正如其他人所指出的,这将是一个nvarchar(max)列。publicclassStringColumnLengthConvention:IPropertyConvention,IPropertyConvent

c# - nHibernate,不存在具有给定标识符的行

我有一个沿着这条线的映射。现在数据库中mdm_field表中的field_id有时会有一个相关key_field表中不存在的值,所以基本上是破坏了参照完整性。因此,当我加载实体时,出现错误“不存在具有给定标识符的行”。我如何配置映射以适应这种情况,使其不会在这种情况下死亡。 最佳答案 好的,我找到了答案。添加not-found="ignore"属性KeyField: 关于c#-nHibernate,不存在具有给定标识符的行,我们在StackOverflow上找到一个类似的问题:

c# - nHibernate,不存在具有给定标识符的行

我有一个沿着这条线的映射。现在数据库中mdm_field表中的field_id有时会有一个相关key_field表中不存在的值,所以基本上是破坏了参照完整性。因此,当我加载实体时,出现错误“不存在具有给定标识符的行”。我如何配置映射以适应这种情况,使其不会在这种情况下死亡。 最佳答案 好的,我找到了答案。添加not-found="ignore"属性KeyField: 关于c#-nHibernate,不存在具有给定标识符的行,我们在StackOverflow上找到一个类似的问题: