问题标签 [automapping]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nhibernate - Fluent NH 实体名称中的自定义 ID 列
我在遗留数据库上使用带有 Fluent Nhibernate 和 Automapper 的 S#arp 架构。
其中一个表的 id 列与 Automapping 约定不同,因此我试图覆盖它但没有成功。我最终遇到了这个错误
FluentNHibernate.Cfg.FluentConfigurationException :创建 SessionFactory 时使用了无效或不完整的配置。检查 PotentialReasons 集合和 InnerException 了解更多详细信息。
- 数据库不是通过数据库方法配置的。
FluentNHibernate.Cfg.FluentConfigurationException :创建 SessionFactory 时使用了无效或不完整的配置。检查 PotentialReasons 集合和 InnerException 了解更多详细信息。
数据库不是通过数据库方法配置的。
---- NHibernate.MappingException : (XmlDocument)(3,6): XML 验证错误:命名空间“urn:nhibernate-mapping-2.2”中的元素“类”在命名空间“urn:nhibernate”中具有无效的子元素“属性” -映射-2.2'。预期的可能元素列表:命名空间“urn:nhibernate-mapping-2.2”中的“元、子选择、缓存、同步、注释、元组、id、复合id”。---- System.Xml.Schema.XmlSchemaValidationException:命名空间“urn:nhibernate-mapping-2.2”中的元素“class”在命名空间“urn:nhibernate-mapping-2.2”中具有无效的子元素“property”。预期的可能元素列表:命名空间“urn:nhibernate-mapping-2”中的“元、子选择、缓存、同步、注释、元组、id、复合id”。
如何使用 Id 自动映射器约定并通过覆盖功能将我的自定义列设置为 id?
注意:这仅适用于一个实体。我不想更改一般的 id 映射约定
这是我当前的覆盖功能
nhibernate - 在 Fluent Nhibernate 中使用 AutoMap 的实体没有持久化器?
我正在尝试将 FluentNHibernate 与 Automapping 结合使用,但收到以下错误
这是相关的东西;
实体
我正在拔头发。使用以下 ClassMap 有效;
我有机会在这个项目中使用 AutoMap 来驱动数据库,我想使用它 - 有什么线索吗?
c# - Fluent NHibernate(带自动映射)不以多对多保存连接表值
我不完全是 NHibernate 专家,所以这可能是该部门缺乏了解。我有两个具有多对多关系的简单实体
和
我的配置是
所以我开始没有覆盖(在一些谷歌搜索建议后添加它们),并使用 ExportSchema 生成我的模式。ExportSchema 知道多对多关系(即使没有覆盖),因为它生成了一个连接表 ( ProductsToCategories
)。
我想添加一些简单的测试数据,所以我这样做了
这会正确保存产品和类别,但不会保存连接表中的任何关系。查看对 category.Products 的调用生成的 sql,它实际上是在该连接表中查找产品(并且找不到任何产品,因为它是空的)
任何帮助将不胜感激 :-)
编辑:删除了一个逆,问题仍然发生:(
编辑2:
这是目录和产品的映射文件(注意:名称有点傻,但这只是一种快速的原型交易)
interface - Fluent NHibernate 的 AutoMapper 可以处理接口类型吗?
我在没有使用 IDE 的情况下键入了这个简化的示例,因此请原谅任何语法错误。当我尝试自动映射时,当我尝试编译映射时,我得到一个 FluentConfigurationException -
“关联引用未映射的类
IEmployee
。”
我想如果我要解决这个问题,当它遇到引用时也会遇到类似的错误IEmployer
。我不反对手动创建 ClassMap,但我更喜欢 AutoMapper 来代替它。
我试过使用.IncludeBase<IEmployee>()
但无济于事。这就像我根本没有调用 IncludeBase 一样。
是不是在我的域实体中不使用接口或依赖手动定义的 ClassMap 的唯一解决方案?
这两种选择都会对我的应用程序的设计方式造成重大问题。在完成所有功能实现之前,我忽略了持久性,我不会再重复这个错误:-(
c# - 来自不同程序集的流畅的 nhibernate 自动映射子类
我需要做的是自动映射我的抽象页面类的子类。我需要在我获得运行时的程序集列表中找到它们(在初始化阶段)。我的映射程序集中没有任何对程序集的引用。
我的页面类看起来像这样:
我的映射如下所示:
_assemblies 是要在其中搜索可映射实体的程序集列表。它包含我的页面类的程序集以及一个或多个其他程序集,这些程序集都引用了基本程序集(具有我的页面类的程序集)。
当我将一个从我的页面类继承的类添加到与我的页面类相同的程序集时,一切正常并且它的映射正确。但是,如果我将一个添加到在运行时加载的其他程序集之一,我会遇到问题。我收到此错误:
“已添加时尝试添加多对一的‘页面’。”
它找到了类,但由于某种原因试图将其映射为 Page 或其他东西。但是页面类已经被映射,所以我得到了那个错误。这是我的猜测。有谁知道我是否可以以任何方式解决这个问题?或者知道解决办法吗?
fluent-nhibernate - 如何在 S#arp 架构中自动映射每个类的表层次结构
我对 S#harp 架构和流利的 nhibernate 还是很陌生。我试图使用模板构建示例解决方案。当我尝试为以下域运行 MappingIntegrationTest 时,它失败了
ParentMap 如下所示:
映射集成测试对我来说失败 * 数据库不是通过数据库方法配置的。
----> NHibernate.MappingException : 来自表 Parent 的关联引用了一个未映射的类:Component
我需要从 AutoMapper 中删除这些类吗?
fluent-nhibernate - 如何使用 Fluent NHibernate 映射 aspnet_Users 表的一部分
我正在尝试让 Fluent NHibernate 1.0 RTM 为我映射一个用户实体,以便我可以通过 NHibernate 访问我的 ASP.NET MVC 应用程序中的 UserId 和 UserName。
我有:
它表示仅包含要映射的相关列的 aspnet_Users 表。这是唯一没有被自动映射的实体。这是我的映射:
其他一切都在使用约定进行自动映射。
这是我的 PrimaryKeyConvention 和 TableNameConvention:
映射过程在执行 ClassMap 代码(在所有自动映射之前)之后立即失败,然后是 TableNameConvention 代码,然后是 PrimaryKeyConvention 代码。失败出现在 PrimaryKeyConvention 中,因为 instance.Property 为空。我试图做一个 if(instance.Property != null) 但这会提前终止映射过程,并出现“缺少所需的属性‘类’”错误。我在 TableNameConvention 中也有一个 if (instance.EntityType != typeof(User)),但是当它没有任何区别时取出。
这里发生了什么?首先,为什么 AutoMapping 进程调用 ClassMap 的约定?其次,为什么 PrimaryKenConvention 会通过 instance.Property == null?我怎样才能让它工作,以便映射过程继续进行并使用 AutoMapping + 约定映射我的其余实体?
请注意,在重构 1.0 RTM 之前,我已经在早期版本的 FNH 下工作了几个月。
nhibernate - fluent nhibernate automap 版本栏
我的约定中的当前代码:
这不会将 RowVersion 呈现为版本列。它将 RowVersion 视为只是另一列。
所以我的问题是如何使用 Fluent Nhibernate 添加行版本并发?
fluent-nhibernate - 流利的nhibernate:保存带有子实体的新实体时出现INSERT错误
我正在尝试保存一个新实体“发布”,并将 1 项添加到其“修订”列表中。
APost
可以有很多PostRevisions
,而APostRevision
只能有一个Post
。
我尝试了几种映射 PostRevisions 的方法,我的 PostRevisionMap 如下:
调用 SaveOrUpate 时出现不同的错误
选项 1 和 3 原因
选项 2 原因
我的 PostMap 如下:
谁能指出我正确的方向,因为我无法发现问题。TIA
nhibernate - 无法弄清楚多对多属性“用户”的另一面应该是什么
我的域自动映射正在工作,但现在当我更新我的 NHibernate 堆栈时,我在会话工厂构建配置时遇到映射异常:
“无法弄清楚多对多属性‘Users’的另一面应该是什么。”
在多对多地图上引发异常
整个堆栈跟踪是这个:
在 FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration() in
c:\hornget.horn\orm\fluentnhibernate\Working-2.1\src\FluentNHibernate\Cfg\FluentConfiguration.cs:
WebApplication1.NHibernateManager.SessionFactoryManager.BuildConfiguration(AutoPersistenceModel persistenceModel
) 的第 119 行在
C:\WebProgramming\Projects\WebApplication1\WebApplication1\NHibernateManager\SessionFactoryManager.cs:第 116 行中的
WebApplication1.NHibernateManager.SessionFactoryManager.GetSessionFactory() 在
C:\WebProgramming\Projects\WebApplication1\WebApplication1\NHibernateManager\SessionFactoryManager.cs:第 71 行在
WebApplication1.NHibernateManager.SessionManager.CloseSession() 中
C:\WebProgramming\Projects\WebApplication1\WebApplication1\NHibernateManager\SessionManager.cs: C:\WebProgramming\Projects\WebApplication1\WebApplication1\Global.asax.cs中
WebApplication1.Global.Application_EndRequest(Object sender, EventArgs e) 的第 47 行: System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 处的第 36
行 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤,布尔值&完成同步)
问题是如何使用自动映射正确处理多对多关系。
注意:在我更新 NHibernate/FluentNHibernate 堆栈之前,映射正在工作......
相关定义粘贴如下:
域类(在 Dll 1 中):
实体类(在 DLL 2 中):
约定:
多对多约定:
模型: