C# 获取泛型类型的ICollection属性
我是ASP.NET MVC 5的新手,我需要获取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
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")