Fluent NHibernate 复合映射 <long, string>

Posted

技术标签:

【中文标题】Fluent NHibernate 复合映射 <long, string>【英文标题】:Fluent NHibernate Composite Mapping <long, string> 【发布时间】:2013-12-01 22:22:14 【问题描述】:

我在映射具有主键的特定表时遇到问题。 假设我有这张桌子:

CREATE TABLE ALERT_EMAIL
(
    IDALERT NUMBER(10, 0) NOT NULL,
    EMAIL   VARCHAR2(100 BYTE) NOT NULL,
    CONSTRAINT ALERT_EMAIL_PK PRIMARY KEY ( IDALERT , EMAIL ) ENABLE
)

这是我的映射:

public class AlertEmailMap : ClassMap<AlertEmail>
    
        public AlertEmailMap()
        
            Schema("XXX");
            Table("ALERT_EMAIL");
            CompositeId().KeyReference(x => x.Alert, "IDALERT").KeyReference(x => x.Email, "EMAIL");
        
    

我收到此错误:“ALERT_EMAIL 表中的关联引用了未映射的类:System.String”

是因为我的 CompositeId 中有一个字符串吗? 如何正确映射该表?

谢谢。

【问题讨论】:

【参考方案1】:

这封电子邮件不涉及其他课程。将其映射为简单属性

CompositeId()
    .KeyReference(x => x.Alert, "IDALERT")
    .KeyProperty(x => x.Email, "EMAIL");

【讨论】:

以上是关于Fluent NHibernate 复合映射 <long, string>的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Fluent NHibernate 中将一对一关系映射为复合键的一部分

Fluent 映射和 NHibernate Xml 配置

使用 Fluent NHibernate 和 NHibernate 3 将枚举映射为 Int

使用 Fluent NHibernate 映射泛型类

Fluent Nhibernate 映射多重连接

使用 2 种策略通过 fluent nhibernate 映射类层次结构