首页 新闻 会员 周边 捐助

EF单向1对1,某外键关联字段为null,则整条数据都为null了

0
悬赏园豆:100 [已解决问题] 解决于 2016-01-08 15:51

比如我现在有2个类

class Project{

public long id{get;set;}

public long? Employeeid{get;set;}//审核人

public Employee em{get;set;}

}

 

class Employee{

pubilc long id{get;set;}

}

 

我在project中配置

HasRequired(x => x.em).WithMany().HasForeignKey(x => x.Employeeid);

 

因为project中的Employeeid有可能为null。。但Employeeid为null时,查询的时候整个project都为null了。。我想的是如果Employeeid为null。。最多是project的em对象为null。。应该如何做?

ef
问题补充:

刚接触EF。双向1对1是我中有你  你中有我。EF机制就这样。就算你不Incude也默认会join并且拿关联表的ID出来。

 

感谢1楼的回答。1-0这样就OK了。

Poiuyt_cyc的主页 Poiuyt_cyc | 初学一级 | 园豆:24
提问于:2015-11-30 15:56
< >
分享
最佳答案
1

不要使用 1对1关系, 要使用1对0-1的关系

1对1 是要双向必须存在的

 

配置可参考博文

http://www.cnblogs.com/libingql/archive/2013/01/31/2888201.html

收获园豆:80
Sky.Grain | 菜鸟二级 |园豆:308 | 2015-11-30 19:37
其他回答(2)
0

你应该用Employee去关联Project,Project是主表,然后和Employee左连接,这样才能得到你想要的数据

收获园豆:10
FengLu-1 | 园豆:112 (初学一级) | 2015-11-30 23:19
0

是不是你用来自己做测试的数据有问题,怎么做连接你应该是知道的,Employeeid为null的时候主表中关于这个ID所记录的数据会null,但是主表中Employeeid is not null 的数据应该能查出来才对

收获园豆:10
顾星河 | 园豆:7281 (大侠五级) | 2015-11-30 23:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册