C#实体框架在此上下文中仅支持原始类型或枚举类型

时间:2018-07-04 12:05:19

标签: c# entity-framework

我是实体框架的新手,所以我创建了一个小测试项目。 我的项目中有以下模型:

class Books
{
    public int Id { get; set; }
    public string Title { get; set; }
    public Author Author { get; set; }
}

class Author
{
    public int Id { get; set; }
    public string Name { get; set; }
}

现在,我想和一位相关作者一起收到所有书籍,但是失败了...

using (WFCDbContext db = new WFCDbContext())
{
    List<Books> = db.Books.Where(x => x.Author == myAuthorVariable).toList()
}

ErrorMessage:

  

此方法仅支持基本类型或枚举类型   上下文。

1 个答案:

答案 0 :(得分:4)

实体框架不知道如何处理您的myAuthorVariable引用,即如何将其转换为 SQL SQL 没有引用的概念。

基本上,在这种情况下,您想要给它一个原始类型,它可以像Id

一样转换为 SQL
using (WFCDbContext db = new WFCDbContext())
{
    List<Books> = db.Books.Where(x => x.Author.Id == myAuthorVariable.Id).toList()
}