首页 > 其他 > 详细

为类型“xxxx”多次调用了 Map,且其中至少有一个调用未指定目标表名称。

时间:2015-10-01 16:37:46      阅读:194      评论:0      收藏:0      [点我收藏+]

ef的继承映射真的是能搞死人啊。。。小结一下:

下图中的代码,ResponseTextMessage、ResponseNewsMessage、ResponseMethodMessage等几个类都是ResponseBaseMessage的子类,我要把他们映射到不同的表中,并且用MsgType来区分,并且给他指定固定的值。

这里需要注意的是,每个Map里面都要写 t.ToTable("ResponseBaseMessage");这句,不写就报如标题的这个错。

 public class ResponseBaseMessageMap : EntityTypeConfiguration<ResponseBaseMessage>
    {
        public ResponseBaseMessageMap()
        {
            ToTable("ResponseBaseMessage");
            HasKey(x => x.Id);
            HasMany(x => x.RequestMessages);
            Map<ResponseTextMessage>(t =>
            {
                t.ToTable("ResponseBaseMessage");
                t.Requires("MsgType").HasValue((int) ResponseMsgType.Text);
            });
            Map<ResponseNewsMessage>(t =>
            {
                t.ToTable("ResponseBaseMessage");
                t.Requires("MsgType").HasValue((int) ResponseMsgType.News);
            });
            Map<ResponseMethodMessage>(t =>
            {
                t.ToTable("ResponseBaseMessage");
                t.Requires("MsgType").HasValue((int) ResponseMsgType.Method);
            });
            Map<ResponseMusicMessage>(t =>
            {
                t.ToTable("ResponseBaseMessage");
                t.Requires("MsgType").HasValue((int)ResponseMsgType.Music);
            });

        }
    }

子类中其他属性的映射:

  public class ResponseNewsMessageMap : EntityTypeConfiguration<ResponseNewsMessage>
    {
        public ResponseNewsMessageMap()
        {
            this.HasMany(x => x.Items);
        }
    }

 

为类型“xxxx”多次调用了 Map,且其中至少有一个调用未指定目标表名称。

原文:http://www.cnblogs.com/baiyunchen/p/4851141.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!