(0, _b.a)()
гарантирует, что функция _b.a
вызывается с this
, установленным для глобального объекта (или если строгий режим включен, undefined
). Если вы должны были называть _b.a()
напрямую, то _b.a
вызывается с this
, установленным на _b
.
(0, _b.a)();
эквивалентно
0; // Ignore result
var tmp = _b.a;
tmp();
( ,
является оператором запятой, см. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator ).
В более поздних версиях Fluent NHibernate для этого можно вызвать метод Index ()
вместо использования SetAttribute
(который больше не существует ):
Map(x => x.Prop1).Index("idx__Prop1");
Вы имеете в виду индексы на столбцах?
можно сделать это вручную в Вашем ClassMap<...>
файлы путем добавления .SetAttribute("index", "nameOfMyIndex")
, например, как так:
Map(c => c.FirstName).SetAttribute("index", "idx__firstname");
или можно сделать это при помощи функций атрибута автокартопостроителя - например, как так:
создав Вашу модель персистентности:
{
var model = new AutoPersistenceModel
{
(...)
}
model.Conventions.ForAttribute<IndexedAttribute>(ApplyIndex);
}
void ApplyIndex(IndexedAttribute attr, IProperty info)
{
info.SetAttribute("index", "idx__" + info.Property.Name");
}
и затем делают это к Вашим объектам:
[Indexed]
public virtual string FirstName { get; set; }
мне нравится последний. Хороший компромисс между тем, чтобы не быть non-instrusive к Вашей модели предметной области, и все же будучи очень эффективным и ясным на том, что происходит.
Ответ Mookid великолепен и очень помог мне, но тем временем постоянно развивающийся API-интерфейс Fluent NHibernate изменился.
Итак, правильный способ написать образец mookid сейчас следующий:
//...
model.ConventionDiscovery.Setup(s =>
{
s.Add<IndexedPropertyConvention>();
//other conventions to add...
});
, где IndexedPropertyConvention имеет следующий вид:
public class IndexedPropertyConvention : AttributePropertyConvention<IndexedAttribute>
{
protected override void Apply(IndexedAttribute attribute, IProperty target)
{
target.SetAttribute("index", "idx__" + target.Property.Name);
}
}
Атрибут [Indexed] теперь работает точно так же.