Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.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# 获取泛型类型的ICollection属性_C#_Linq_Asp.net Mvc 5_Icollection - Fatal编程技术网

C# 获取泛型类型的ICollection属性

C# 获取泛型类型的ICollection属性,c#,linq,asp.net-mvc-5,icollection,C#,Linq,Asp.net Mvc 5,Icollection,我是ASP.NET MVC 5的新手,我需要获取Icollection属性并搜索到其他属性,如果打印了第一次搜索的结果就可以了,但是当我搜索时,结果为空 有什么问题 var userId = User.Identity.GetUserId(); var user = db.Users.Include( u=> u.Sucursales) .Where(u => u.Id == userId) .SingleO

我是ASP.NET MVC 5的新手,我需要获取Icollection属性并搜索到其他属性,如果打印了第一次搜索的结果就可以了,但是当我搜索时,结果为空

有什么问题

var userId = User.Identity.GetUserId();
var user = db.Users.Include( u=> u.Sucursales)
                   .Where(u => u.Id == userId)
                   .SingleOrDefault();

if( user != null )
{
    var sucursal = user.Sucursales.Include(s => s.Emisor)
                                  .Where(s => s.ID == suc)
                                  .SingleOrDefault();
    if (sucursal != null)
    {
        var tipoCfe = sucursal.Emisor.TiposCfe
                                     .Where(t => t.ID == factura)
                                     .SingleOrDefault();
我变了

var user = db.Users.Include( u=> u.Sucursales)
为了


由于您使用的是
SingleOrDefault()
,因此您的查询将立即进行,但请参见您的
Include(s=>s.Emisor)
向我展示。由于在获取用户时未包含Emissor,因此您将无法请求,因为您的查询不再是IQueryable类型。您的查询已执行

为了检索所需的数据,您必须在第一次查询期间获取数据。在检索用户时,我会执行类似的操作:
db.Users.Include(“Sucursales.emissor”)


更多关于包含方法

你能说得更具体些吗。哪个结果为null?sucursal==null,但是sucursal.ID==suc在user.Sucursales中。
suc
set的值在哪里?要做什么?很难。我看代码没有问题。您是否100%确定Sucursales包含元素且变量“suc”的值正确?有关include方法的详细信息。。。如果希望使用类型安全的方法,您可能需要执行诸如:db.Users.Include(“Sucursales.emissor”)之类的操作,请使用
db.Users.Include(u=>u.Sucursales.Select(s=>s.emissor))
var user = db.Users.Include("Sucursales.Emisor")