Linq эквивалент T-SQL с оператором [duplicate]

Методы .success и .error устарели и были удалены из AngularJS 1.6 . Вместо этого используйте стандартный метод .then.

$http.get('https://api.github.com/users')
  .then(function (response) {

    var data = response.data;
    var status = response.status;
    var statusText = response.statusText;
    var headers = response.headers;
    var config = response.config;

    $scope.user = data;
    console.log(data);
});

Уведомление об изъятии

Методы долгосрочного обещания $http .success и .error устарели и будут удаляться в версии 1.6.0. Вместо этого используйте стандартный метод .then.

- AngularJS (v1.5) $ HTTP API API-службы - уведомление об изъятии .

blockquote>

Также см. SO: Почему угловые $ http-методы успеха / ошибки устарели? .

5
задан sch55 3 May 2011 в 23:20
поделиться

3 ответа

Нет эквивалента Linq to SQL, который может сделать это (эффективным образом). Лучшим решением будет вызов SP / View / UDF из Linq, содержащий этот оператор.

3
ответ дан Magnus 21 August 2018 в 04:50
поделиться
  • 1
    Да, но я должен бойкотировать все SP и фактический код SQL. В этом случае нет выбора – sch55 4 May 2011 в 20:55
  • 2
  • 3
    Ах, я определенно получаю вашу точку сейчас, большое спасибо за подсказку! – sch55 4 May 2011 в 23:20
public static List<Composite> GetSubCascading(int compositeId)
{
    List<Composite> compositeList = new List<Composite>();

    List<Composite> matches = (from uf in ctx.Composite_Table
    where uf.Id == compositeId
    select new Composite(uf.Id, uf.Name, uf.ParentID)).ToList();

    if (matches.Any())
    {
        compositeList.AddRange(TraverseSubs(matches));
    }

    return compositeList;
}

private static List<Composite> TraverseSubs(List<Composite> resultSet)
{
    List<Composite> compList = new List<Composite>();

    compList.AddRange(resultSet);

    for (int i = 0; i < resultSet.Count; i++)
    {
        //Get all subcompList of each folder
        List<Composite> children = (from uf in ctx.Composite_Table
        where uf.ParentID == resultSet[i].Id
        select new Composite(uf.Id, uf.Name, uf.ParentID)).ToList();

        if (children.Any())
        {
            compList.AddRange(TraverseSubs(children));
        }
    }

    return compList;
}

//All where ctx is your DataContext
-1
ответ дан sch55 21 August 2018 в 04:50
поделиться
  • 1
    Это вызовет БД для каждого узла в древовидной структуре. – Magnus 4 May 2011 в 19:38

Вы можете написать код (рекурсивный или нет), который неоднократно запрашивает базу данных, пока он не получит все результаты.

Но я думаю, что нет способа написать один запрос LINQ to SQL, который будет получать все результаты, которые вам нужны за один раз, поэтому лучше всего сохранить запрос в SQL.

1
ответ дан svick 21 August 2018 в 04:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: