EF单向1对1,外键属性为NULL时,当前整个对象都为null了

问题描述

比如我现在有2个类classProject{publiclongid{get;set;}publiclong?Employeeid{get;set;}//审核人publicEmployeeem{get;set;}}classEmployee{pubilclongid{get;set;}}

我在project中配置HasRequired(x=>x.em).WithMany().HasForeignKey(x=>x.Employeeid);因为project中的Employeeid有可能为null。。但Employeeid为null时,查询的时候整个project对象都为null了。。我想的是如果Employeeid为null,只是project的em对象为null。。应该如何做?

时间: 2024-10-31 12:44:11

EF单向1对1,外键属性为NULL时,当前整个对象都为null了的相关文章

Oracle外键约束修改行为(五)实现UPDATE SET NULL

Oracle的外键用来限制子表中参考的字段的值,必须在主表中存在.而且在主表的记录发生变化导致外键参考唯一约束值发生了变化时,定义了一系列的动作. 这篇描述一下如何实现UPDATE SET NULL. 前面几篇文章介绍了Oracle所支持的3种约束行为NO ACTION.DELETE SET NULL和DELETE CASCADE. 至于SQL标准中定义的其他操作,Oracle只能通过触发器来实现,这里给出一个简单的UPDATE SET NULL操作的例子.    SQL> DROP TABLE

hibernate5(12)注解映射[4]一对一外键关联

在实际博客网站中,文章内容的数据量非常多,它会影响我们检索文章其它数据的时间,如查询发布时间.标题.类别的等.这个时候,我们可以尝试将文章内容存在另一张表中,然后建立起文章--文章内容的一对一映射 一对一关联有两种方式,一种是外键关联,另一种是复合主键关联. 外键关联 下面我们先看一个一对一单向关联的实例 /*************关联关系维护方************/ @Table(name = "t_article") @Entity public class Article

Java的Hibernate框架中的双向主键关联与双向外键关联_java

一.双向主键关联双向的主键关联其实是单向一对一主键关联的一种特殊情况,只不过要在关联对象的两端的映射文件中都要进行<one-to-one>的配置,另外还要在主映射的主键一端采用foreign外键关联属性. 这里同样使用Person和IdCard来讨论,一个人对应着一个唯一的身份证,而且一个身份证也唯一映射着一个人,所以这就产生了双向的关联关系,Person的主键同样也是IdCard的主键,分别是主键的同时也是外键,这种关联关系成为双向一对一映射,表现到关系模型中可如下图: 图中的两个表采用了主

关于C#,Java等数据库框架LazyLoad的在表无外键关系时替代方案问题讨论?

问题描述 对于数据库框架,包括现在的.net中的EF等数据库持久层框架,都提供了LazyLoad的机制,然而这个机制建立在表直接存存在主外键关系才可实现对于现行的市场境况,多数成功项目为了便于扩展,都不建立外键,使得LazyLoad的机制不能使用,那么在没有外键情况下能否实现类似于LazyLoad,在程序逻辑上建立关系,实现LazyLoad呢? 解决方案 解决方案二:按你的话说,"数据库框架,包括现在的.net中的EF等数据库持久层框架"如果不使用LazyLoad机制加载,而是一次性就

【数据蒋堂】第33期:JOIN提速 - 外键指针化

我们再来看重新定义JOIN后如何能够提高运算性能,先看外键式JOIN的情况. 设有两个表: 其中sales表中的productid是指向products表中id字段的外键,id是products表的主键. 现在我们想计算销售额有多少(为简化讨论,就不再设定条件了),用SQL写出来: SELECT SUM(sales.quantity*products.price) FROM sales JOIN products ON sales.productid=products.id 基于笛卡尔积定义的J

数据蒋堂 | JOIN提速 - 外键指针化

我们来看重新定义JOIN后如何能够提高运算性能,先看外键式JOIN的情况. 设有两个表: 其中sales表中的productid是指向products表中id字段的外键,id是products表的主键. 现在我们想计算销售额有多少(为简化讨论,就不再设定条件了),用SQL写出来: SELECT SUM(sales.quantity*products.price) FROM sales JOIN products ON sales.productid=products.id 基于笛卡尔积定义的JO

hibernate的关联关系,是否数据库表中有外键没有关系?

问题描述 hibernate的关联关系,是否数据库表中有外键没有关系? hibernate的关联关系,是否数据库表中有外键没有关系?昨天使用了hibernate做了一个多对一的关系,然后在做数据库字段的时候,一开始并没有去建立外键约束,只是把关联字段的信息放了上去,然后CRUD操作都没问题,然后看了一篇帖子,上面看到数据库表中有外键约束,这时候才想起来这个事情,我加了外键以后也没什么问题,再去掉还是没有问题,那么这里是加还是不加外键呢?hibernate自己处理好了吗?有什么区别吗?以后是加好还

Hibernate外键许为NULL,JSP如何取值。

问题描述 前提:  1,Hibernate设置:      一个主表A,其中有一个字段外键关联一个基础信息表B,容许为NULL.延迟加载.  2,DAO      直接查询主表A,返回主表A的值对象.  3,系统使用框架:      SSH问题:  在JSP中,直接使用:${主表A.信息表B.外键字段的名称} 时,出错.请问如何解决. 解决方案 恩,在<%@page%>里面加isELIgnored='false'.先让jstl能用.而jstl遇到错误只是不显示而已,不会报错的.这就可以符合你的

ORACLE中关于外键缺少索引的探讨和总结

    在ORACLE数据库中,定义外键约束时,ORACLE是不会自动创建对应索引的,必须手动在外键约束相关的列上创建索引.那么外键字段上是否有必要创建索引呢?如果有必要的话,巡检时,如何找出外键字段上没有创建索引的相关表,并生成对应的索引的脚本呢?   外键缺失索引影响   外键列上缺少索引会带来三个问题,限制并发性.影响性能.还有可能造成死锁.所以对于绝大部分场景,我们应该尽量考虑在外键上面创建索引   1. 影响性能. 如果子表外键没有创建索引,那么当父表查询关联子表时,子表将进行全表扫描