Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架6可以';t读取数据库表中的所有行_C#_.net_Database_Entity Framework - Fatal编程技术网

C# 实体框架6可以';t读取数据库表中的所有行

C# 实体框架6可以';t读取数据库表中的所有行,c#,.net,database,entity-framework,C#,.net,Database,Entity Framework,我的数据库中有两个表,Agent和AgentInfo 一个Agent映射到多个AgentInfos 数据库表的列如下所示: 代理(Id、代理信息Id、名称);AgentInfo_Id ref此代理在数据库中添加的最新AgentInfo AgentInfo(Id、代理Id、状态)Agent\u Id告诉Agent该AgentInfo属于哪个 (清理了一些不相关的列) 我创建了两个模型 public class Agent { public Agent() { t

我的数据库中有两个表,
Agent
AgentInfo

一个
Agent
映射到多个
AgentInfo
s

数据库表的列如下所示:

  • 代理
    (Id、代理信息Id、名称);AgentInfo_Id ref此代理在数据库中添加的最新AgentInfo

  • AgentInfo
    (Id、代理Id、状态)
    Agent\u Id
    告诉
    Agent
    AgentInfo
    属于哪个

(清理了一些不相关的列)

我创建了两个模型

public class Agent
{
    public Agent()
    {
        this.AgentInfoes = new List<AgentInfoe>();
    }

    public Guid ID { get; set; }
    public string Name { get; set; }
    public Guid? AgentInfo_Id { get; set; }

    public virtual AgentInfo AgentInfo { get; set; }
    public ICollection<AgentInfo> AgentInfoes { get; set; }
}

public class AgentInfo
{
    public System.Guid Id { get; set; }
    public System.Guid Agent_Id { get; set; }
    public int Status { get; set; }

    public virtual Agent Agent { get; set; }
}
和功能代码

var agentInfo = db.AgentInfos.FirstOrDefault(o => o.Id == req.AgentInfoId);
var agent = agentInfo.Agent;
var status = agent.AgentInfoes.Any(o=>o.Status==1) ?1:-1;
在此处
agent.AgentInfo
无法加载属于此代理的所有
AgentInfo

数据库中有5行
AgentInfo
的外键
Agent\u Id
等于
Agent.Id
,但我只得到2行
AgentInfo


怎么了

猜猜看。该代理有5个AgentInfo,但只有2个AgentInfo的状态等于1。@yyou no,我得到的2个AgentInfo,它们的状态是(-1,1),而它们的状态都是(2,-1,1,0,2)。为什么
AgentInfo
Agent
属性以及
Agents
集合?你是在创建一个多模型还是多个多模型?@ChrisPickford I正在创建一个多模型。代理只有一个对象,等于agentInfo。Agent@Yizhi这就是你的问题:
。有很多(t=>t.Agents)
。你们正以一种非常全面的方式映射一种多对多的关系。猜猜看。该代理有5个AgentInfo,但只有2个AgentInfo的状态等于1。@yyou no,我得到的2个AgentInfo,它们的状态是(-1,1),而它们的状态都是(2,-1,1,0,2)。为什么
AgentInfo
Agent
属性以及
Agents
集合?你是在创建一个多模型还是多个多模型?@ChrisPickford I正在创建一个多模型。代理只有一个对象,等于agentInfo。Agent@Yizhi这就是你的问题:
。有很多(t=>t.Agents)
。你们正以一种非常全面的方式映射一种多对多的关系。
var agentInfo = db.AgentInfos.FirstOrDefault(o => o.Id == req.AgentInfoId);
var agent = agentInfo.Agent;
var status = agent.AgentInfoes.Any(o=>o.Status==1) ?1:-1;