C# Where语句后的Linq查询不返回关系数据 public List GetAllFriendsTopStores(长uid,列出用户) { 使用(var entities=new myEntities()){ var v=entities.DbUsers .Where(x=>users.Contains(x.uid)) .Stores//我无法在此处选择门店?这是为什么??? } }

C# Where语句后的Linq查询不返回关系数据 public List GetAllFriendsTopStores(长uid,列出用户) { 使用(var entities=new myEntities()){ var v=entities.DbUsers .Where(x=>users.Contains(x.uid)) .Stores//我无法在此处选择门店?这是为什么??? } },c#,.net,linq,entity-framework,C#,.net,Linq,Entity Framework,在本例中,存储是导航属性。。。我需要能够访问此场景中我朋友的stores对象。在之后,其中您有IEnumerable集合,因此如果您只有一个用户作为结果并希望访问它,请应用Single() UPD: var v = entities.DbUsers .Where( x => users.Contains( x.uid )) .Single() .Stores; var v = entities.DbUsers

在本例中,存储是导航属性。。。我需要能够访问此场景中我朋友的stores对象。

之后,其中
您有
IEnumerable
集合,因此如果您只有一个用户作为结果并希望访问它,请应用
Single()

UPD

    var v = entities.DbUsers
        .Where( x => users.Contains( x.uid ))
        .Single()
        .Stores;
    var v = entities.DbUsers
        .Where( x => users.Contains( x.uid ))
        .Select( x => x.Stores );
在这种情况下,您将获得用户的
存储集

UPD 2

    var v = entities.DbUsers
        .Where( x => users.Contains( x.uid ))
        .Single()
        .Stores;
    var v = entities.DbUsers
        .Where( x => users.Contains( x.uid ))
        .Select( x => x.Stores );

如果我理解正确,那就是你要找的。在此之后,您将拥有匿名对象的集合,其中每个对象都有
存储
BllStore
属性。

在您尝试使用存储的地方,您将尝试对DbUser对象的筛选序列(集合)调用它。您需要处于一个允许您访问单个记录的上下文中才能使用该记录。

Is将属性存储在
DbUser
上?或者在实体上?它是用户上与DbStores表相关的导航属性。您的方式有效。。。但是我想做的是得到一个用户列表,然后返回所有用户的商店。。。这是可能的吗?假设我想做一个select语句,比如x=>new BllStore{a=x.a},比如thiat,我会添加第二个select语句,还是有办法在一个语句中完成这一切。我现在明白了。。。有没有办法用一句话来完成我想做的事情?