Каскад сохраняет с быстрым NHibernate AutoMapping

Вы можете использовать String.match с регулярным выражением #\w+:

var str = `
type 1. #World is a #good #place to #live.
type 2. #World#place#live.`

var matches = str.match(/#\w+/g)

console.log(matches)

[ 112] соответствует любому символу слова [a-zA-Z0-9_] более одного раза, так что вы можете настроить его.

Как только у вас есть совпадения в массиве, вы можете изменить их в соответствии с вашими предпочтениями.

21
задан Ryan Montgomery 11 February 2010 в 12:32
поделиться

4 ответа

Это работает с новыми битами конфигурации. Для получения дополнительной информации см. http://fluentnhibernate.wikia.com/wiki/Converting_to_new_style_conventions

//hanging off of AutoPersistenceModel    
.ConventionDiscovery.AddFromAssemblyOf<CascadeAll>()


public class CascadeAll : IHasOneConvention, IHasManyConvention, IReferenceConvention
{
    public bool Accept( IOneToOnePart target )
    {
        return true;
    }

    public void Apply( IOneToOnePart target )
    {
        target.Cascade.All();
    }

    public bool Accept( IOneToManyPart target )
    {
        return true;
    }

    public void Apply( IOneToManyPart target )
    {
        target.Cascade.All();
    }

    public bool Accept( IManyToOnePart target )
    {
        return true;
    }

    public void Apply( IManyToOnePart target )
    {
        target.Cascade.All();
    }
}
13
ответ дан 17 October 2019 в 01:14
поделиться

Можно также сделать расположение каскадом конвенции по умолчанию для всех типов. Например (использующий статью Вы связались с как начальная точка):

autoMappings.WithConvention(c =>  
  {  
    // our conventions
    c.OneToOneConvention = o => o.Cascade.All();
    c.OneToManyConvention = o => o.Cascade.All();
    c.ManyToOneConvention = o => o.Cascade.All();
  });
1
ответ дан 17 October 2019 в 01:14
поделиться

Это часть кода I, созданного для проверки IBAN. Не стесняйтесь использовать.

    static void Main(string[] args)
    {
        int modulo = 97;
        string input = Reverse("100020778788920323232343433");
        int result = 0;
        int lastRowValue = 1;

        for (int i = 0; i < input.Length; i++)
        {
            // Calculating the modulus of a large number Wikipedia http://en.wikipedia.org/wiki/International_Bank_Account_Number                                                                        
            if (i > 0)
            {
                lastRowValue = ModuloByDigits(lastRowValue, modulo);
            }
            result += lastRowValue * int.Parse(input[i].ToString());
        }
        result = result % modulo;
        Console.WriteLine(string.Format("Result: {0}", result));            
    }

    public static int ModuloByDigits(int previousValue, int modulo)
    {
        // Calculating the modulus of a large number Wikipedia http://en.wikipedia.org/wiki/International_Bank_Account_Number                        
        return ((previousValue * 10) % modulo);
    }
    public static string Reverse(string input)
    {
        char[] arr = input.ToCharArray();
        Array.Reverse(arr);
        return new string(arr);
    }
-121--905649-

Извините, я не нашел правильного ответа на этот вопрос, поэтому я не хочу выделять ни один из них как правильный, поэтому я отмечу этот ответ как правильный и желаю всем удачи, кто столкнется с чем-то подобным!

-121--3186115-

Подписи метода конвенции изменились. Новый ответ на этот вопрос можно найти в разделе ЭТОТ ВОПРОС .

3
ответ дан 17 October 2019 в 01:14
поделиться

Обновлено для использования с текущей версией:

public class CascadeAll : IHasOneConvention, IHasManyConvention, IReferenceConvention
{
    public void Apply(IOneToOneInstance instance)
    {
        instance.Cascade.All();
    }

    public void Apply(IOneToManyCollectionInstance instance)
    {
        instance.Cascade.All();
    }

    public void Apply(IManyToOneInstance instance)
    {
        instance.Cascade.All();
    }
}
13
ответ дан 17 October 2019 в 01:14
поделиться
Другие вопросы по тегам:

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