简体   繁体   English

为什么在关系的多对一方向(C#EF)中,我总是得到空/空数据,而在相反的方向上,它仍然可以正常工作?

[英]Why in many-to-one direction in relations (C# EF) i always get empty/null data but in oposite direction it's works fine?

Example: 例:

public Tim getTim(int userID) 
{
    TimUsers timUser  = _ctx.TimUser.FirstOrDefault(c => c.ID == userID);
    return _ctx.Times.FirstOrDefault(c => c.ID == timUser.tim.ID);
}

and model (code first) sample: 和模型(代码优先)样本:

public class TimUsers
{
    public int ID { get; set; }
    ...

    public virtual Tim time {get;set;}
}

public class Tim 
{
    public int ID { get; set; }
    ...

    public virtual ICollection<TimeUsers> timeUsers { get; set; }
}

I'm 100% sure that a relation between TimeUser and Tim exist becouse this method give me a list of timeUser : 我100%肯定TimeUserTim之间存在关系, TimeUser此方法为我提供了timeUser列表:

public IQueryable<TimeUsers> GetTimeUsersByTime(int TimeId) 
{
    return _ctx.TimeUser
               .Where(c => c.tim.ID == TimeId)
               .AsQueryable();

}

I'm sorry for syntax error but I wrote this sample without debbuging. 对于语法错误,我感到很抱歉,但是我编写此示例时没有调试。 Thanks for help. 感谢帮助。

You need to include the child: 您需要包括孩子:

var timeWithChildren = _ctx.Times.Include(t => t.time).FirstOrDefault(c => c.ID == timUser.tim.ID); 

https://msdn.microsoft.com/en-us/data/jj574232.aspx https://msdn.microsoft.com/en-us/data/jj574232.aspx

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM