我正在使用AJAX查询来调用引用模型的函数。实体框架查询加入问题
到目前为止它将详细信息返回给用户表,这一切都正常工作。问题是,我与另一个表有一对多的关系。
Person - PersonId去加入表 - personId链接到潜在的多个colourIds - colourId链接到颜色表。
因此涉及三个表格 - 人物,最喜欢的颜色和颜色。
我想在我的原始查询中包含连接,但我遇到了困难。查询:
TechTestEntities testTechObj = new TechTestEntities();
var Result = from p in testTechObj.People
join fp in testTechObj.FavouriteColours on p.PersonId equals fp.PersonId
join c in testTechObj.Colours on fp.ColourId equals c.ColourId
select p;
当我运行此我得到的错误“的实体类型FavouriteColours是不是该机型为当前上下文的一部分。”
我还增加FavouriteColours到模型中,像这样:
public virtual DbSet<FavouriteColours> FavouriteColours { get; set; }
所有的表应该包含在ADO模型,所以我不知道问题是什么,以及如何检索颜色名称通过加入。
编辑:
型号代码
namespace techTest4
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using techTest4.Models;
public partial class TechTestEntities : DbContext
{
public TechTestEntities()
: base("name=TechTestEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Colour> Colours { get; set; }
public virtual DbSet<Person> People { get; set; }
//public virtual DbSet<FavouriteColours> FavouriteColours { get; set; }
}
}
请包括任何类型“testTechObj”的类定义,以及您的“DbSet”定义的类 –
“FavouriteColours”也在代码中注释过,您运行了吗? –
我真的不明白你想在这里实现什么样的功能 - 你想从数据库中提取所有人吗? –