nhibernate 相关问题

NHibernate是.NET框架的成熟的开源对象关系映射器(ORM)。

如何配置NHibernate连接SQL Server?

我的 NHibernate 配置与 SQL Server 数据库的连接遇到了一些问题。我的应用程序结构仅用于简单测试。这是我的 hibernate.xml.cfg: 我的 NHibernate 配置与 SQL Server 数据库的连接遇到了一个小问题。我的应用程序结构仅用于简单测试。这是我的hibernate.xml.cfg: <?xml version="1.0" encoding="utf-8" ?> <hibernate-configuration> <session-factory xmlns="urn:nhibernate-configuration-2.2"> <property name="hibernate.connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property> <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="connection.url">jdbc:jtds:sqlserver://OUSSEMA;DatabaseName=DB_GestionCompte</property> <property name="connection.username">sa</property> <property name="connection.password">123</property> <property name="show_sql">true</property> </session-factory> </hibernate-configuration> 我在运行项目时遇到此错误: System.TypeInitializationException: 'The type initializer for 'HibernateUtil' threw an exception.' HibernateConfigException: An exception occurred parsing configuration :The 'name' attribute is invalid - The value 'connection.url' is invalid according to its datatype 'Union' - The value 'connection.url' is not valid according to any of the memberTypes of the union. 上述错误是在以下代码行中引发的:DataService.cs: ISessionFactory factory = HibernateUtil.GetSessionFactory(); 我尝试了不同的 NHibernate 配置方法,但没有一个有效。同时我确信 SQL 身份验证有效且线路正确。 以下属性名称有效;您需要根据您的配置更改值: <?xml version="1.0"?> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> <session-factory> <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <property name="connection.connection_string">Data Source=SQLServer;Initial Catalog=DBName;User ID=SQLUser;Password=SQLPassword</property> <property name="default_schema">[XYZ].[dbo]</property> <property name="connection.isolation">ReadCommitted</property> <property name="show_sql">false</property> <mapping assembly="MyMappingsAssembly"/> </session-factory> </hibernate-configuration> 但是,您可以选择通过代码来完成所有这些操作,而不是使用 XML 配置。请参阅this答案,其中解释了如何做到这一点。 other 答案解释了如何将 SQL 查询记录到文件中。 查看文档,您的配置似乎使用了无法识别的属性名称。 例如,connection.url,应该是connection.connection_string。我在文档中看不到 connection.username 或 connection.password 的等效项。这些通常包含在连接字符串中。

回答 2 投票 0

NHibernate 损害域对象

我正在使用 NHibernate 作为我的 ORM 编写 ASP.NET MVC 应用程序。不过,我在设计上遇到了一些困难,希望得到一些意见。 所以,我的问题是我该把我的业务/验证放在哪里......

回答 2 投票 0

nHibernate 配置与 sql server

我的 Hibernate 配置与 SQL Server 数据库的连接面临一个小问题, 所以我的应用程序结构只是为了简单测试,这里是架构:在此处输入图像描述 所以

回答 1 投票 0

NHibernate - 锁定反序列化对象

当我锁定反序列化的对象时遇到问题。 例如。: var session = sessionFactory.OpenSession(); var item = session.QueryOver().Where(x => x.Id = "1").FutureValue().

回答 1 投票 0

nHibernate 映射到自定义类型

我有一个 Oracle 数据库,其中一个字段是日期范围字段。它基本上只是以 YYYY/MM/DD-YYYY/MM/DD 格式作为 VARCHAR(40) 存储在数据库中。我想在 nHibernat 中映射它...

回答 1 投票 0

nhibernate:没有表的类映射

我有一个实体类,用于表示 sql 查询的结果。类的映射如下所示。但据我所知,nhiberate 将映射视为存在真实的数据库

回答 2 投票 0

Azure SQL 托管实例和本地 SQL 中的 Nhibernate 错误消息

有人遇到过类似的问题吗?使用 Orchard 多年后,下面的异常突然开始出现。该网站被锁定,并且在

回答 1 投票 0

流畅的 NHibernate 私有字段映射

我已经生成了一些流畅的 NHibernate 代码。它的实体代码如下: 私有 ISet _cardPlace; 公共杂志类型() { _cardPlace = 新的哈希集 我已经生成了一些流畅的 NHibernate 代码。它的实体代码如下: private ISet<CardPlace> _cardPlace; public MagazineType() { _cardPlace = new HashedSet<CardPlace>(); } public virtual ISet<CardPlace> CardPlace { get { return _cardPlace; } set { _cardPlace = value; } } 该属性的映射如下: HasMany(x => x.CardPlace) .Access.CamelCaseField(Prefix.Underscore) .Cascade.AllDeleteOrphan() .Fetch.Select() .AsSet() .Inverse() .LazyLoad() .KeyColumns.Add("MAGAZINE_ID"); 我不明白的是.Access.CamelCaseField(Prefix.Underscore)线。为什么它不直接映射到属性而是映射到私有支持字段?这样做有什么理由吗? 如果删除 .Access.CamelCaseField(Prefix.Underscore) 映射将到属性 getter 和 setter。 该行指示流利的 nhiberate 使用该字段。 这里的答案将/应该/可能是:改进领域模型设计。这里的主要辅助词是“封装”。因为: 为什么我们要尝试创建实体模型(包含所有业务/验证规则)... ...同时保持后门打开,即拥有公共设置器。 有一篇非常好的文章,深入探讨了这一点: 加强您的领域:避免设置者 让我引用它的摘要(但请仔细阅读该文本) 聚合根边界在理论上很有趣,但您可能看到的许多领域模型仅具有名义上的边界。 如果域模型公开操作和命令只是为了通过直接转到属性设置器来公开绕过这些操作,那么实际上根本没有边界。 ... 保留公共设置器的理由通常是“更容易测试”。根据经验,无效的域对象更令人困惑并且更难测试,因为您无法知道在使用应用程序时您已经设置了一个实际上有效的上下文。 文章中的所有论点(请阅读)都浓缩在最后一段: 我们可以通过以下方式避免这种混乱和可能的额外防御性编码: 删除只能通过在我们的域模型上执行的操作和命令来更改的数据的公共设置器。 再次强调,这就是封装的意义所在。我们的模型只公开支持的内容,不允许不支持的内容。 注意:嗯,我确实使用公共设置器,并且我确实使用“借口”,例如“这更适合测试...... 映射到支持字段至少有几个原因。 封装,正如 Radim Köhler 在上面提到的“位于核心”。但是,让我帮忙举一些实际例子。 首先拥有一个私有支持字段可以允许在获取值或设置值时完成一些工作。 将 DB 数据映射到支持字段允许 getter 执行读取数据时正在完成的工作,并允许设置数据时完成的工作。但是,支持字段将是存储时的原始数据库数据。 您可能会问什么样的工作?假设您将数据作为标志存储在数据库中......您可以将设置器中的标志转换为某种二进制格式,然后在读取时将其从二进制格式转换回来——允许属性将转换封装为存储在数据库中的原始数据。属性可以使用相同的数据库列,对二进制或整数数据库类型进行逻辑运算。有时,您的数据库可能包含多年的数据并与其他系统集成,这不允许您轻松更改数据库格式。您的 getter/setter 可以将其转换为代码中更容易理解的格式。您甚至可以执行一些编码/解码。有很多可能性。 封装也可能涉及复杂性。 假设数据库中存储的内容涉及许多因素——类中许多事物的一些复杂结果,这些结果是由方法以及其他属性、字段、引用对象等的状态产生的。在这种情况下,您可能无法掌握所有内容设置器中的逻辑。您可能有一个私人二传手或根本没有二传手。读取该值可能仍然通过公共或受保护的 getter 进行,需要进行一些少量的工作。在这种情况下,支持字段必须保存映射。当需要工作时,您不能允许公开设置或获取属性,因为有人很容易认为他们可以直接获取或设置值并绕过转换值所需的工作。如果 setter 或 getter 直接映射到数据库中的原始数据,他们甚至可能会尝试再次重复封装在类中的工作。 在处理集合或复杂类型时,有时您需要在 getter 或 setter 中进行转换。您通过属性公开复杂类型,但数据在数据库中被归结为简单类型。组件映射也可以做到这一点。

回答 3 投票 0

nhibernate5.5.0 JoinEntityAlias 多个 ProjectionList 结果不起作用

公共IListGetNonassetJoinPersonData(ExpressionConditionnonassetCondition) { var lambda_contract_effect = bizUTRenterContract.

回答 1 投票 0

如何使用“not in”进行 NHibernate QueryOver?

有没有办法让 NHibernate 的查询变得更容易? 为了便于理解,这是我想用 NHibernate 创建的查询: 从任务中选择* 其中task_id不在 (选择task_id...

回答 2 投票 0

从IList<>返回ReadOnlyCollection

好的,所以 List<> 包含 AsReadOnly(),它为您提供 ReadOnlyCollection。我需要的是有一个 IList 类型的字段,以及一个将为该列表返回 ReadOnlyCollection 的属性...

回答 6 投票 0

ISession.Load(id)“创建代理实例失败”“序列包含多个匹配元素”

我正在从非常旧的 NHibernate 版本(2.1 到 5.5)升级应用程序。应用程序构建并运行,并且从数据库读取实体或向数据库写入实体。 但是,当调用 ISession.Load 时,我得到

回答 1 投票 0

NHibernate 多对一映射:如果parent为null,则将外键设置为空Guid而不是null

我想要做的事情确实非常简单,但我似乎无法使用 NHibernate 获得正确的映射。 我正在处理一个包含父对象和子对象的数据库。子对象...

回答 2 投票 0

使用 SQLite 和 DateTimeOffset 映射对 NHibernate 进行单元测试

移植应用程序以从不同的 ORM 使用 NHibernate。 我已经开始具备针对内存 SQLite 数据库运行单元测试的能力。这适用于第一个...

回答 4 投票 0

使用 NHibernate 的 SqlDateTime 溢出

我使用 NHibernate 在数据库中保存我的对象 App 对象定义了一个属性: 公共虚拟日期时间发布日期{获取;放; } 在映射类中: 地图(x => x.发布日期)....

回答 2 投票 0

如何在 Code Smith 中合并 XML 文件?

我正在使用 CodeSmith 生成项目中的文件。它具有使用插入区域和保留区域策略合并 C#/VB 和 SQL 文件的功能。 我怎样才能将这些扩展到...

回答 3 投票 0

NHibernate:尽管配置正确,但实体映射不正确

我面临 NHibernate 的问题,尽管配置似乎正确,但实体映射不正确。以下是该场景的摘要: 我有一个 ProductPrices 课程...

回答 1 投票 0

NHibernate QueryOver 与WhereRestriction 为 OR

我有这个查询,但我似乎找不到如何将WhereRestrictionOn 设置为OR。现在它们的功能为“与”,但我想要一个或另一个。 var privateInfo = Session.QueryOver() ...

回答 2 投票 0

Hibernate,指定多列为主键

我有以下数据库架构。 表:项目 item_id int(11) 自动增量不为空 item_name varchar(22) 不为空 version_start_date 日期时间不为空 version_end_date 日期时间 主键...

回答 1 投票 0

NHibernate LINQ 添加查询提示

我正在尝试将“OPTION(RECOMPILE)”添加到我的一些 NHibernate 查询的末尾。我找到了以下帖子: https://www.codewrecks.com/post/old/2011/07/use-sql-server-query-hints-with-

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.