Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

NHibernate / MySQL स्ट्रिंग संयोजन

निम्नलिखित एक HqlGenerator है जो इस समस्या को हल करता है:

public class ConcatHqlGenerator : BaseHqlGeneratorForMethod
{
    public ConcatHqlGenerator()
        : base()
    {
        this.SupportedMethods = new[] 
        { ReflectionHelper.GetMethodDefinition(() => string.Concat(null, null)) };
    }

    public override HqlTreeNode BuildHql(MethodInfo method,
Expression targetObject,
ReadOnlyCollection<Expression> arguments,
HqlTreeBuilder treeBuilder,
IHqlExpressionVisitor visitor)
    {
        return treeBuilder.Concat(
            new[] 
            {
                visitor.Visit(arguments[0]).AsExpression(),
                visitor.Visit(arguments[1]).AsExpression()
            });
    }
}

इसे अपने HQLGeneratorsRegistry में जोड़ें और आपको कॉल के साथ string.Concat में LINQ स्टेटमेंट में जाना अच्छा होगा।

public class LinqToHqlGeneratorsRegistry : DefaultLinqToHqlGeneratorsRegistry
{
    public LinqToHqlGeneratorsRegistry()
        : base()
    {
        this.Merge(new ConcatHqlGenerator());
    }
}
private static ISessionFactory CreateSessionFactory()
{
    var configuration = new NHib.Cfg.Configuration();
    configuration.Properties.Add(NHibernate.Cfg
                                           .Environment.LinqToHqlGeneratorsRegistry, 
typeof(LinqToHqlGeneratorsRegistry).AssemblyQualifiedName);
    configuration.Configure();
    return configuration.BuildSessionFactory();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक परिणामसेट लौटाना

  2. कैसे जांचें कि कोई चर न्यूल है या नहीं, फिर इसे एक MySQL संग्रहीत प्रक्रिया के साथ सेट करें?

  3. Mysql में लूप के साथ किसी अन्य तालिका से डेटा डालें

  4. MySQL में सोशल नेटवर्क सिस्टम के लिए डेटाबेस डिजाइन करने के लिए गाइड

  5. पीडीओ:MySQL सर्वर चला गया है