指定的包含路径无效。 EntityType''不声明具有名称的导航属性

时间:2018-01-01 12:38:11

标签: c# asp.net-mvc entity-framework

使用旧数据库,仅升级数据访问层无法在表上添加密钥。

现在的问题是假设有2个表(Table1和Table2)。两个表都具有一对一关系,但未定义外键。

当没有连接时,如何获取第二个表的数据?有没有办法在1次调用时检索数据,而不是在db上检索2个不同的调用?

我试过这种方式

context.Table1.Include("Table2").AsExpandable().FirstOrDefault(x => x.ID == id); 

但是收到此错误

  

指定的包含路径无效。 EntityType''未声明名称为''的导航属性。

是否有任何解决方案,或者我必须进行2次不同的调用才能检索数据。

第一表Table1

public partial class Table1
{
    public long ID { get; set; }
}

第二表Table2

public partial class Table2
{
    public long ID { get; set; }
    public long Table1ID { get; set; }
}

使用分区类手动映射表2中的表1.

public partial class Table2
{
     public virtual Table1 Table1 { get; set; }
}

现在通过这种方法调用

var Table2= context.Table2.Find(id);
if (Table2 != null)
{
     Table2.Table1 = context.Table1.Find(Table2.Table1ID)
}

现在有两个数据库调用,我们可以使用实体框架中的包含方法进行一次调用

0 个答案:

没有答案