首页 新闻 会员 周边 捐助

entity framework 的关系问题?怎么做到非主外键关联?

0
悬赏园豆:20 [待解决问题]

我在网上找了一些资料大致摘掉entity framework的 主外键关联的 1:1 1:n 和n:n的关系

但是这里有一个问题

如果使用主外键关联

那么外键会涉及到不能为空以及级联删除的问题

但是如果不用的话

又做不到实体之间的跨表查询即 tablea>=a.tableb.id == ???

所以这里想问问

如何做到保留表之间的关系,同时又做到表之间 不级联删除以及字段可以为空

小眼睛老鼠的主页 小眼睛老鼠 | 老鸟四级 | 园豆:2731
提问于:2013-09-27 09:19
< >
分享
所有回答(5)
0

推荐看看 http://www.cnblogs.com/humble/p/3320804.html

[秦时明月] | 园豆:738 (小虾三级) | 2013-09-27 09:23

我要的entityframework的解决方案。。。

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2013-09-27 09:29

@小眼睛老鼠: 

1.性能不是很好

2.多数据源、数据迁移问题

3.成本高(如果不是很熟悉很有研究,很多坑)

支持(0) 反对(0) [秦时明月] | 园豆:738 (小虾三级) | 2013-09-27 09:44

@小眼睛老鼠:  你的问题是不是 两张表,都是主键对应的
http://q.cnblogs.com/q/55292/

我正在解决这个问题

支持(0) 反对(0) 小成时光 | 园豆:143 (初学一级) | 2013-09-27 10:15
0

这样数据不是有冗余了

Yu | 园豆:12990 (专家六级) | 2013-09-27 09:24

不是冗余的问题,例如 会员和会员卡是1对1的关系吧 但是有时候 回有匿名会员卡

那么这个时候会员卡就不应该和会员关联

那请问我怎么保持会员卡 和会员之间的关系同时 又可以让外键为空??(我先前实验过了 好像外键不能为空)

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2013-09-27 09:28

@小眼睛老鼠: 那你建一个匿名会员,然后所有匿名会员卡都与之对应,不是更好

支持(0) 反对(0) Yu | 园豆:12990 (专家六级) | 2013-09-27 09:31

@小眼睛老鼠: 给个标识是匿名的就行了吧?

支持(0) 反对(0) happydaily | 园豆:260 (菜鸟二级) | 2013-09-27 09:35

@happydaily: 那外键的值是什么呢?

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2013-09-27 09:36

@小眼睛老鼠:外键是可以为NULL的 

支持(0) 反对(0) Yu | 园豆:12990 (专家六级) | 2013-09-27 10:15

@Yu: 外键规约是不可为null的

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2013-09-27 10:33

@小眼睛老鼠: 不是强制的

支持(0) 反对(0) Yu | 园豆:12990 (专家六级) | 2013-09-27 10:54

@Yu: 你把会员的主键作为会员卡的外键,就可以了

支持(0) 反对(0) Yu | 园豆:12990 (专家六级) | 2013-09-27 11:00
0

可以使用LINQ的JOIN操作实现

dudu | 园豆:29568 (高人七级) | 2013-09-27 11:05
0

非主键关联,设置外键。我记得是这么解决的。你在网上再找找资料。

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-09-27 11:07
0

刚刚园子中有位大哥给回答了,两表主键共享一对一关系
modelBuilder.Entity<A>().HasOptional(u => u.B)
.WithRequired();


小成时光 | 园豆:143 (初学一级) | 2013-09-27 11:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册