首页新闻找找看学习计划

EF的 0-1 关联问题

0
悬赏园豆:20 [已解决问题] 解决于 2015-02-08 15:32

新系统,定义了主表,同时定义两个从表:

public class EntityA
{
    public int id
    {
        get;
        set;
    }
}

public class EntityB : EntityA
{
}

public class EntityC : EntityA
{
}

参考代码如上,通过codefirst形成tpt的关系,问题就这样来了:

 

当在EntityB或EntityC里没有同一个Id的数据时,EntityB和EntityC都是工作正常的,但是,一旦都有数据,就立马报告错误:

 

不具备从头 EntityC 到EntityB的类型转换(或者反过来)。

519740105的主页 519740105 | 大侠五级 | 园豆:5810
提问于:2014-12-15 19:25
< >
分享
最佳答案
0

估计这问题太难了,后来分析了下EF的原理,嘿嘿,有点背道了。

 

解决这个问题,可以采用另外的方案:

不使用继承,改A为主表,B、C作为外键表,只进行1<-->0..1的外键关联。

519740105 | 大侠五级 |园豆:5810 | 2015-02-08 15:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册