gpt4 book ai didi

c# - 返回带有 Entity Framework 代码优先错误 : Unable to evaluate the expression. 操作不支持的子对象。未知错误:0x80070057

转载 作者:太空狗 更新时间:2023-10-29 21:56:56 24 4
gpt4 key购买 nike

我不断收到以下错误

Unable to evaluate the expression. Operation not supported. Unknown error: 0x80070057

尝试返回父对象及其子对象时。

据我所知,数据库构建、播种并正确定义了所有关系。我建立了一个较小的模型来测试和展示问题:

父对象:

public class Person
{
[Key]
[Column(Order = 1)]
public int Id { get; set; }

[StringLength(100)]
public string Name { get; set; }

public DateTime DateModified { get; set; }
public DateTime DateCreated { get; set; }

public virtual ICollection<Job> Jobs { get; set; }
}

子对象:

public class Job
{
[Key]
[Column(Order = 1)]
public int Id { get; set; }

[StringLength(100)]
public string Name { get; set; }

public int PersonId { get; set; }

[ForeignKey("PersonId")]
public virtual Person Person { get; set; }
}

返回 _context.Person 有效并返回具有空作业的人员列表

返回 _context.Person.Include(o => o.Jobs) 会引发上述错误。

我知道这是简单的东西,只有两个非常简单的表,但我看不出问题出在哪里,因为我已经无数次创建了这个模型 senario 而没有出现问题。我正在考虑重建项目和 EF 依赖项,但更愿意了解此问题并在可能的情况下修复它。

最佳答案

经过一番努力后,解决了以下问题:

_context 的存储库方法:

  public IQueryable<Person> GetPeople()
{
return _context.Person.Include(s => s.Jobs);
}

调用代码只需要一个 ToList() 方法:

var people = _repository.GetPeople().ToList();

people 变量现在包含一个 person 对象列表,每个对象都有一个 job 对象列表。呸!!

关于c# - 返回带有 Entity Framework 代码优先错误 : Unable to evaluate the expression. 操作不支持的子对象。未知错误:0x80070057,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34922355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com