首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >代码NHibernate映射OneToOne:不使用唯一键

代码NHibernate映射OneToOne:不使用唯一键
EN

Stack Overflow用户
提问于 2014-05-10 12:08:37
回答 1查看 172关注 0票数 0

我有两个实体:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class ServiceEvent
{
    public long Id { get; set; }
    **public virtual Customer CustomerRef { get; set; }**

    public long ServiceId { get; set; }
    public string Test { get; set; }
}

public class Customer
{
    public long Id { get; set; }
    **public virtual ServiceEvent Event { get; set; }**

    public string TestCustomer { get; set; }
    public long CustonerId { get; set; }
}

和映射:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    public ServiceEventMap()
    {
        Id(x => x.Id, m => m.Generator(Generators.Native));
        Property(x => x.ServiceId, m => {m.Unique(true); m.NotNullable(true);});
        Property(x => x.Test);
        OneToOne(x => x.CustomerRef, m => m.PropertyReference(typeof(Customer).GetPropertyOrFieldMatchingName("Event")));
    }

    public CustomerMap()
    {
        Id(x => x.Id, m => m.Generator(Generators.Native));
        Property(x => x.CustonerId);
        Property(x => x.TestCustomer);
        ManyToOne(x => x.Event, m =>
        {
            m.PropertyRef("ServiceId");
            m.Column(mc =>
            {
                mc.Name("service_id");
                mc.NotNullable(true);
            });
            m.ForeignKey("fk_service_event_customer");
        });
    }

我用了NOtherDev的一个例子。正如在例子中所描述的,我在一边建立了多对一的关系,在另一边建立了“虚拟的”一对一的关系。

当主键在两个表中具有相同的值时,它可以很好地工作。但我需要这种关系是基于ServiceId字段,而不是主键。

目前,我对数据的选择有问题。从数据库中读取的所有ServiceEvent对象都具有CustomerRef属性中的null

我在数据库中有以下数据:

客户表

id |service_id |test_customer |custoner_id

测试字符串7\55\x=444534543

service_event表

id |service_id _x检验

2\55另一个字符串

当我阅读Customer时,它有到ServiceEvent对象的正确链接。

在一对一映射中的PropertyReference设置似乎根本不起作用。

请帮我找出我的错误在哪里。

EN

回答 1

Stack Overflow用户

发布于 2014-05-14 23:57:58

一对一的关系总是共享主键,如果不是这样的话,您可以有几个与相同的实体相关。在其中一个实体(依赖方)中,它既是主键又是外键,而在另一个实体(主键)中,它只是主键。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23585771

复制
相关文章
React技巧之发出http请求
原文链接:https://bobbyhadz.com/blog/react-send-request-on-click[1]
chuckQu
2022/08/19
7770
React技巧之发出http请求
在Node.js中发出HTTP请求的7种方法
本文翻译自7 Ways to Make HTTP Requests in Node.js
ccf19881030
2020/10/29
27.1K0
在 Flutter 中发出 HTTP 请求的最佳库(2022 年)【Flutter专题31】
本文将向您介绍最好的开源软件包列表,这些软件包可以帮助我们在 Flutter 应用程序中发出 HTTP 请求。事不宜迟,让我们探索重要的事情。
徐建国
2022/03/30
2.9K0
HttpRunner3的HTTP请求是怎么发出去的
在类TestCaseBasic的内部定义了teststeps列表,由多个Step类的实例对象组成。
python亦希
2022/01/26
3340
HttpRunner3的HTTP请求是怎么发出去的
它继承了pydantic.BaseModel,是用来做数据验证的,比如这里的url指定了Url类型,如果传一个str类型,就会校验失败。简而言之,这是给代码规范用的,没有实际的业务功能。
dongfanger
2022/05/09
3010
如何在原生Node.js中发出HTTP请求
本文翻译自How to make HTTP Requests in native Node.js
ccf19881030
2020/10/29
4.5K0
大量远程ssh连接请求--造成拒绝服务的问题
1.动机 最近跑实验需要大量(24个)并行进程连接到服务器上执行相同的命令来完成特定任务。 但是跑实验的时候会偶尔出现下面这种错误:   ssh_exchange_identification: Connection closed by remote host ----  2.分析   1.发起ssh请求不是全部拒绝   2.成功的ssh请求数量不固定 ----  3.原因   sshd服务一般会设置一个MaxStartups来限制远程登录的数量,以保证服务器不被攻击   查看了一下相关目录下/etc/ss
昊楠Hacking
2018/03/08
3.5K0
Python发送Http请求时,中文乱码
quote():假如URL的 name 或者 value 值中有『&』、『%』或者『=』等符号,就会有问题。所以URL中的参数字符串也需要把『&=』等符号进行编码,quote()就是对参数字符串中的『&=%』等符号进行编码。
py3study
2020/01/08
1.5K0
Flutter - 检查 Internet 连接示例[Flutter专题14]
有时,您可能想要检查运行您的应用程序的设备的互联网连接。如果应用程序是使用 Flutter 开发的,您可以阅读本教程中的示例。
徐建国
2021/12/07
2.1K0
【网络共享解决】Internet连接共享访问被启用时,出现了一个错误 无法启用Internet连接共享。为LAN连接配置的IP地址需要使用自动IP寻址。
原因:共享的网络IP地址192.168.137.1被其他网络连接占用。 解决办法:将其他网络IP地址修改一下IP地址即可。
宝耶需努力
2022/12/13
6.3K0
【网络共享解决】Internet连接共享访问被启用时,出现了一个错误 无法启用Internet连接共享。为LAN连接配置的IP地址需要使用自动IP寻址。
解决retrofit OKhttp创建大量对外连接时内存溢出
这个问题是这样发生的,我的表中有一批数据,量级较大,数百万个,它们有个地址Address字段,标明了地理位置。我需要对这一批数据根据地址去百度或者高德地图去查询经纬度,并且保存下来。 原本是直接分页读取该表,每次读取几百条,然后一条一条去获取经纬度并且保存。后来发现实在太慢,一秒也就能处理个三五条。所以开启了多线程,大约30个线程,每个线程处理不同id范围的数据。 此时问题出现了,每个线程中都有for循环来分页读取DB中的地址数据,然后每条数据都要去百度地图请求一次,网络请求用的是retrofit,retrofit是包装的OKHttp。
天涯泪小武
2019/01/17
3.7K0
在Golang的HTTP请求中共享数据
首先,我们需要先明确一下问题的描述:本文所要讨论的共享数据可不是指的 cookie、session 之类的概念,它们描述的是在「请求间」共享数据,而我们关注的是在「请求中」共享数据,也就说是,在每个请求中的各个 middleware 和 handler 之间共享数据。
LA0WAN9
2021/12/14
5890
HTTP默认端口_http协议使用的端口号
80是http协议的默认端口,是在输入网站的时候其实浏览器(非IE)已经帮你输入协议了,所以你输入http://baidu.com,其实是访问http://baidu.com:80。而8080,一般用与webcahe,完全不一样的两个,比如linux服务器里apache默认跑80端口,而apache-tomcat默认跑8080端口,其实端口没有实际意义只是一个接口,主要是看服务的监听端口。
全栈程序员站长
2022/09/29
3.3K0
查看http的并发请求数与其TCP连接状态
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
红目香薰
2022/11/29
8190
当 HTTP 连接池遇上 KeepAlive 时
最近在使用netty作为http客户端通过pool连接tomcat的时候,出现了很多Connection reset by peer 的IOException的异常。便对问题的根源做了细致的调研。
芋道源码
2018/12/29
2.4K0
当 HTTP 连接池遇上 KeepAlive 时
iOS网络--HTTP请求HTTP请求
本文首发于我的个人博客:『不羁阁』 https://bujige.net 文章链接:https://bujige.net/blog/iOS-HTTP-request.html HTTP请求 1.NSURLConnectiong 1.同步GET请求 // 1.创建请求路径(url) NSURL *url = [NSURL URLWithString:@""]; // 2.通过请求路径(url)创建请求对象(request) NSURLRequest *request = [NSUR
程序员充电站
2018/05/31
2K0
大量连接时使用 使用epoll管理 or golang 多协程
最近开发了一个针对游戏服务器框架测压机器人, 当大量的机器人连接建立时, 通常的做法是给每个机器人配置一个网络read协程, 但是当机器人数量比较高时, 有点担心协程的竞争, 正好无意中看到一个百万级连接服务器的文章,学习了一下epoll对conn io的管理, 自己鼓捣了一下,写了个测试工程, 现将代码分享一下, 有兴趣的可以参考参考
IT工作者
2022/07/21
7060
HTTP常见端口_8443端口
常见端口地点 HTTP服务器,默认的端口号为80/tcp(木马Executor开放此端口); HTTPS(securely transferring web pages)服务器,默认的端口号为443/tcp 443/udp; Telnet(不安全的文本传送),默认端口号为23/tcp(木马Tiny Telnet Server所开放的端口); FTP,默认的端口号为21/tcp(木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口); TFTP(Trivial File Transfer Protocol ),默认的端口号为69/udp; SSH(安全登录)、SCP(文件传输)、端口重定向,默认的端口号为22/tcp; SMTP Simple Mail Transfer Protocol (E-mail),默认的端口号为25/tcp(木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口); POP3 Post Office Protocol (E-mail) ,默认的端口号为110/tcp; WebLogic,默认的端口号为7001; Webshpere应用程序,默认的端口号为9080; webshpere管理工具,默认的端口号为9090; JBOSS,默认的端口号为8080; TOMCAT,默认的端口号为8080; WIN2003远程登陆,默认的端口号为3389; Symantec AV/Filter for MSE ,默认端口号为 8081; Oracle 数据库,默认的端口号为1521; ORACLE EMCTL,默认的端口号为1158; Oracle XDB( XML 数据库),默认的端口号为8080; Oracle XDB FTP服务,默认的端口号为2100; MS SQL*SERVER数据库server,默认的端口号为1433/tcp 1433/udp; MS SQL*SERVER数据库monitor,默认的端口号为1434/tcp 1434/udp; QQ,默认的端口号为1080/udp
全栈程序员站长
2022/10/02
3.4K0
点击加载更多

相似问题

发出请求的端口+ HTTP

11

在Python中发出大量HTTP请求

410

在使用reactjs发出HTTP请求之前,如何等待活动的internet连接?

31

gevent /请求在发出大量头请求时挂起。

24

OutOfMemoryException在发出Http请求时

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文