Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Penggabungan string NHibernate / MySQL

Berikut ini adalah HqlGenerator yang memecahkan masalah ini:

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()
            });
    }
}

Tambahkan ini ke HQLGeneratorsRegistry Anda dan Anda akan baik-baik saja dengan panggilan ke string.Concat dalam pernyataan LINQ Anda.

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. Bagaimana cara menghapus dari beberapa tabel di MySQL?

  2. menampilkan data dari database SQL ke tabel php/html

  3. Bagaimana cara mendapatkan skrip pembuatan tabel di MySQL Workbench?

  4. Kolom tertentu tidak dimasukkan saat menyimpan catatan

  5. Kueri/tanggal MYSQL lebih lama dari 1 minggu yang lalu (semua waktu dalam UTC)