Когда следует предпочесть объединения, выраженные с помощью SelectMany (), а не объединения, выраженные с помощью Ключевое слово join в Linq

Linq позволяет выражать внутренние соединения с помощью ключевого слова join или с помощью SelectMany () (т.е. пара ключевых слов from) с ключевым словом where:

var personsToState = from person in persons
                     join state in statesOfUS
                     on person.State equals state.USPS
                     select new { person, State = state.Name };
foreach (var item in personsToState)
{
    System.Diagnostics.Debug.WriteLine(item);
}

// The same query can be expressed with the query operator SelectMany(), which is
// expressed as two from clauses and a single where clause connecting the sequences.                     
var personsToState2 = from person in persons
                      from state in statesOfUS
                      where person.State == state.USPS
                      select new { person, State = state.Name };
foreach (var item in personsToState2)
{
    System.Diagnostics.Debug.WriteLine(item);
}

Мой вопрос: когда целесообразно использовать стиль соединения, а когда стиль where, com / 2010/07/12 / edit-a-variable-length-list-knockout-style /

Однако я хочу сделать больше с естественной привязкой jquery вместо атрибутов привязки HTML. Это подробно описано в учебнике нокаута. http://knockoutjs.com/documentation/template-binding.html

Однако я не могу воспроизвести это, как это объясняется. Я покажу ниже свой код просмотра. Моя проблема связана с тем, что {{foreach (i, gift) Gifts}} не работает. Я пробовал много вариантов ( {{foreach (i, gift) Gifts ()}} , как я видел в других примерах).

Я использую последний файл knockout.js . Я использую jQuery 1.4.3. Я использую http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.js для механизма создания шаблонов. Однако я также пробовал это, используя тот же файл tmpl.js , который включен на веб-сайт knockous.js, и получил те же результаты.

При использовании шаблонов jQuery, согласно текущей спецификации, шаблон не отображается.

Документация по тегам шаблонов jQuery находится здесь: http://api.jquery.com/category/plugins/templates/template-tags/

На случай, если кто-то не понял мою точную модель. Если я заменю {{foreach (i, gift) Gifts}} на { {foreach gift}} , тогда модель будет отображаться и вести себя правильно, но я не могу использовать собственный jQuery $ {property} объявления для чего угодно.

HTML

@model IEnumerable
@using System.Web.Script.Serialization;

@{
    View.Title = "Index";
    Layout = "~/Views/Shared/_Site.cshtml";
}

    

Gift list editor

12
задан Ciel 26 October 2010 в 17:19
поделиться