我在网上找了一些资料大致摘掉entity framework的 主外键关联的 1:1 1:n 和n:n的关系
但是这里有一个问题
如果使用主外键关联
那么外键会涉及到不能为空以及级联删除的问题
但是如果不用的话
又做不到实体之间的跨表查询即 tablea>=a.tableb.id == ???
所以这里想问问
如何做到保留表之间的关系,同时又做到表之间 不级联删除以及字段可以为空
推荐看看 http://www.cnblogs.com/humble/p/3320804.html
我要的entityframework的解决方案。。。
@小眼睛老鼠:
1.性能不是很好
2.多数据源、数据迁移问题
3.成本高(如果不是很熟悉很有研究,很多坑)
@小眼睛老鼠: 你的问题是不是 两张表,都是主键对应的
http://q.cnblogs.com/q/55292/
我正在解决这个问题
这样数据不是有冗余了
不是冗余的问题,例如 会员和会员卡是1对1的关系吧 但是有时候 回有匿名会员卡
那么这个时候会员卡就不应该和会员关联
那请问我怎么保持会员卡 和会员之间的关系同时 又可以让外键为空??(我先前实验过了 好像外键不能为空)
@小眼睛老鼠: 那你建一个匿名会员,然后所有匿名会员卡都与之对应,不是更好
@小眼睛老鼠: 给个标识是匿名的就行了吧?
@happydaily: 那外键的值是什么呢?
@小眼睛老鼠:外键是可以为NULL的
@Yu: 外键规约是不可为null的
@小眼睛老鼠: 不是强制的
@Yu: 你把会员的主键作为会员卡的外键,就可以了
可以使用LINQ的JOIN操作实现
非主键关联,设置外键。我记得是这么解决的。你在网上再找找资料。
刚刚园子中有位大哥给回答了,两表主键共享一对一关系
modelBuilder.Entity<A>().HasOptional(u => u.B)
.WithRequired();