C# 实体框架查询后未执行任何语句

C# 实体框架查询后未执行任何语句,c#,entity-framework,linq,entity-framework-6,linq-to-entities,C#,Entity Framework,Linq,Entity Framework 6,Linq To Entities,因此,我使用Quartz为我的程序创建了一个任务调度器,我遇到了这样的问题:如果有多个作业要运行,它将重复执行相应作业的查询,但不会执行下一行。好像我一碰到tolist它就挂起来了()。有什么想法吗 try { //work on query further , need to get client ID correctly if (vehicleses.Count == 0) return null; string siteId = QueryExpor

因此,我使用Quartz为我的程序创建了一个任务调度器,我遇到了这样的问题:如果有多个作业要运行,它将重复执行相应作业的查询,但不会执行下一行。好像我一碰到tolist它就挂起来了()。有什么想法吗

try
{
    //work on query further , need to get client ID correctly
    if (vehicleses.Count == 0)
        return null;
    string siteId = QueryExportSiteWithId(exportSiteId).SiteId;
    string clientId = vehicleses[0].ClientID;
    db.Database.Log = Console.Write;


    var inventoryyReturn = from i in db.Inventory_Vehicles
        where dealerIdList.Any(c => c == i.ClientID) && i.Archived != "1" && i.Holding != "1" &&
              i.Status == "A"
        select i;

    var inventoryDescription = from i in db.Inventory_Descriptions
        where
        inventoryyReturn.Any(
            c => new {client = c.ClientID, inv = c.ID} == new {client = i.ClientID, inv = i.InventoryID})
        select i;
    var settingsExports = from i in db.Settings_Exports
        where inventoryyReturn.Any(c => c.ClientID == i.ClientID)
        select i;
    var settingLots = from i in db.Settings_Lots
        where
        inventoryyReturn.Any(
            c => new {client = c.ClientID, lot = c.LotID} == new {client = i.ClientID, lot = i.ID})
        select i;
    var inventoryFeatures = from i in db.Inventory_Features
        where
        inventoryyReturn.Any(
            c => new {client = c.ClientID, inv = c.ID} == new {client = i.ClientID, inv = i.InventoryID})
        select i;
    var inventoryPhotos = from i in db.Inventory_Photos
        where
        inventoryyReturn.Any(c => c.ID == i.InventoryID)
        select i;


    var longReturnListt = (from i in inventoryyReturn
        join l in inventoryDescription on new {inv = i.ID, cli = i.ClientID} equals
        new {inv = l.InventoryID, cli = l.ClientID} into descGroup
        from m in descGroup.DefaultIfEmpty()
        join s in settingsExports on i.ClientID equals s.ClientID into settingGroup
        from sg in settingGroup.DefaultIfEmpty()
        join sl in settingLots on new {client = sg.ClientID, lot = sg.LotID} equals
        new {client = sl.ClientID, lot = sl.ID} into lotsGroup
        from lg in lotsGroup.DefaultIfEmpty()
        join se in db.Settings_ExportSites on new {client = lg.ClientID, lotId = i.LotID, site = siteId}
        equals new {client = se.ClientID, lotId = se.LotID, site = se.Site} into exportGroup
        from eg in exportGroup.DefaultIfEmpty()
        join f in inventoryFeatures on new {inv = i.ID, cli = i.ClientID} equals
        new {inv = f.InventoryID, cli = f.ClientID} into invFeatGroup
        from ifg in invFeatGroup.DefaultIfEmpty()
        join p in inventoryPhotos on i.ID equals p.InventoryID into photo
        from photos in photo.DefaultIfEmpty()
                                    orderby i.ID
        select new {i, m, sg, photoo = photo.ToList(), lg, ifg, eg}
        into grouped

        group grouped by new {grouped.i.ClientID}
        into groupedDone
        //select groupedDone

        from categories in groupedDone
        select new NewType
        {
            InventoryVehicles = categories.i,
            InventoryDescriptions = categories.m,
            SettingsExports = categories.sg,
            InventoryPhotos = categories.photoo,
            SettingsLots = categories.lg,
            InventoryFeatures = categories.ifg,
            SettingsExportSites = categories.eg
        }
    ).ToList();
  //  var sql = ((System.Data.Entity.Core.Objects.ObjectQuery) longReturnListt as ObjectQuery);
 //   var trace = sql.ToTraceString();

    if (longReturnListt != null)
    {
        //returnList.AddRange(longReturnListt.);
        return returnList;
    }
    return null;
}
catch (Exception exception)
{
    Console.WriteLine(exception);
    throw;
}

我不能确定,但似乎这种行为可能是由循环连接引用引起的。首先,基本上不需要多次发布同一个问题。其次,使用
Any
内部连接到所有这些子查询没有任何意义,只需连接到它们相应的
DbSet
s,或者更好地使用导航属性。