实体框架在查询中创建不存在的列 [英] Entity framework creating a non existent column in the query

查看:105
本文介绍了实体框架在查询中创建不存在的列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这已经困扰了我很多时间,但是当我的实体框架尝试执行oracle查询时,我一直收到无效的标识符错误.有问题的类如下:

This has been puzzling me for quite some time but I keep getting an invalid identifier error when my entity framework tries to execute an oracle query. The classes in question are the following:

public class Projectship : ModelTrackingBase
{

    [Column("PROJECTID")]     
    public long ProjectId { get; set; }

    [Column("VISITID")]
    public long VisitId { get; set; } 

    public virtual Bpid Bpid { get; set; } //new
    public virtual Visit Visit { get; set; }

}

 public class Bpid : EntityIdBase
{
    [Column("BUDPRJID")]
    [MaxLength(38)]
    public string BPId { get; set; }

    [Column("DESCRIPTION")]
    [MaxLength(255)]
    public string Description { get; set; }

    [Column("CSTOBJ")]
    [MaxLength(255)]
    public string Custobj { get; set; }

    [Column("PVID")]
    [MaxLength(255)]
    public string Pvid { get; set; }
    public virtual ICollection<Projectship> Projectships { get; set; }  

    public IEnumerable<Visit> Visits
    {
        get { return Projectships.Select(p => p.Visit); }
    }

    [NotMapped]
    public string DisplayName
    {
        get { return string.Format("{0}: {1}", BPId , Description); }
    }

}

现在EntityIdBase具有以下内容:

Now the EntityIdBase has the following:

public class EntityIdBase : EntityBase
    {
        [Column("ID")]
        public long Id { get; set; }
    }

它试图继续在查询中查找列Bpid_Id.有人有什么主意吗?

It tries to keep on looking for a column Bpid_Id in the query. Does someone have any idea?

推荐答案

Bpid_id由EF创建,因为它无法自动确定关系.尝试添加注释:

Bpid_id is created by EF because it can't automatically determine the relationship. Try adding the annotation:

[ForeignKey("ID")]
public virtual Bpid Bpid { get; set; } //new

这篇关于实体框架在查询中创建不存在的列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆