- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在学习 NHibernate,我了解到类映射是使用 XML 完成的。我知道 Fluent NHibernate 是作为 XML 样式映射的强类型替代品出现的。事实上,这里是 fluent-nhibernate
标签说明:
Fluent NHibernate lets you write NHibernate mappings in strongly typed C# code. This allows for easy refactoring, improved readability and more concise code.
后来我用了NHibernate Mapping Generator从我现有的数据库创建映射和域类,它生成的映射代码如下:
using NHibernate.Mapping.ByCode.Conformist;
using NHibernate.Mapping.ByCode;
namespace MyNamespace.Infrastructure.Mappings
{
public class MyItemMapping : ClassMapping<MyItem>
{
public MyItemMapping()
{
Table("MyItems");
Schema("master");
Lazy(true);
Id(x => x.ID, map => map.Generator(Generators.Assigned));
Property(x => x.Status, map => map.NotNullable(true));
Property(x => x.DueDate, map => map.NotNullable(true));
Property(x => x.NextReminderDate);
Property(x => x.DatePaid);
Property(x => x.Notes);
}
}
}
你看,它使用了 NHibernate.Mapping.ByCode.Conformist.ClassMapping<T>
类(class)。是什么赋予了? 如果 NHibernate 实际上确实有它自己的强类型、非 XML 映射功能,那么我为什么需要 Fluent NHibernate?
我注意到 NHibernate.Mapping.ByCode.Conformist.ClassMapping<T>
之间存在一些差异和 FluentNHibernate.Mapping.ClassMap<T>
.比如前者不支持References
,例如References(x => x.BillingItemID);
, 通过外键关联实体。也许还有另一种方法。
最佳答案
FluentNHibernate 在 NHibernate 有 MappingByCode 之前就已经存在了,现在有了,FluentNHibernate 已经过时了,它的效率也低于 Nhibernate 自己的 MappingByCode,因为它在启动时生成普通的 XML 映射文件并在内部使用它们。
NHibernate MappingByCode 的唯一缺点是它的文档不多,我找到的最好的文档在这里:
http://notherdev.blogspot.co.uk/2012/02/nhibernates-mapping-by-code-summary.html
但无论如何我都会使用 NHibernate 的版本。我的印象是 NHibernate 的版本实际上比 FluentNhibernate 支持更多,相当于 Reference
只是关系的对立面,例如如果父级映射为 OneToMany()
,则 Fluent 的 Reference
的等效子级映射将是 ManyToOne()
。我认为无论如何都是如此。
关于c# - NHibernate.Mapping.ByCode.Conformist.ClassMapping 和 FluentNHibernate.Mapping.ClassMap 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39192527/
我正在尝试使用公式来映射 ICollection 类型的属性,但是,无论我使用哪种方法来确定映射中的类型,nHibernate 都会引发错误。 No parameterless constructor
我需要在多个类中重用一个组件类型,但该组件类型的映射将根据它所在的根类而有所不同。我们正在使用 ByCode 映射 API 来实现这一点。 看起来应该很简单:只需为每个类显式映射不同的组件即可。 但是
所以最近我一直在尝试简单地更改一个类名,但我就是做不到。这是我的代码注入(inject)器类节点 https://0bin.net/paste/9REMNddwqjm8vRms#hyr4RG3BI36
我有一个员工表: Employee { Name EmployeeId -pk PositionId -fk } positionId映射到位置表: Position {
有什么区别?自 NH 3.2 以来,我是否应该认为 Fluent NH 已过时? 最佳答案 几乎没有什么主要区别 - FNH 已经很成熟并且很流行,但是按代码映射更强大,与 NHibernate 功能
本文整理了Java中pl.edu.icm.model.bwmeta.y.YLanguage.byCode()方法的一些代码示例,展示了YLanguage.byCode()的具体用法。这些代码示例主要来
我相信这个问题是由忽略 FetchKind 属性引起的。 我有一个员工表: Employee { ID Name PositionCode } 和位置表: Position {
我尝试修改我的 apk 中的 dex 文件以混淆我的代码。 我在 eclipse 上编译了以下代码: boolean test = false; SmsManager sm = SmsManager.
我有一个类型为 byte[] 的类,我想使用新的 NHibernate ByCode 将其映射到 SQL Server 中的 varbinary(max) 字段映射。 到目前为止,为了让 NH 创建模
我正在学习 NHibernate,我了解到类映射是使用 XML 完成的。我知道 Fluent NHibernate 是作为 XML 样式映射的强类型替代品出现的。事实上,这里是 fluent-nhib
我是一名优秀的程序员,十分优秀!