firebird SUBSTR
関数を使用してlinq-to-nhibernate、queryoverまたはという関数を使用してNHibernateクエリを書く必要があります。私はhqlまたはSQL
でそれをするかもしれませんが、これらは私の最後のオプションです。Firebirdの関数 "SUBSTR"を使用したクエリ
誰にもアイデアはありますか?次の例のクエリは私のNHibernateのクエリの結果SQLのようになります。そして、
using NHibernate.Linq;
...
public static class CustomLinqExtensions
{
[LinqExtensionMethod("SUBSTR")]
public static string SubStr(this string dummy, int start, int length)
{
// No need to implement it in .Net, unless you wish to call it
// outside IQueryable context too.
throw new NotImplementedException("This call should be translated " +
"to SQL and run db side, but it has been run with .Net runtime");
}
}
あなたのエンティティ上でそれを使用します:LINQのでは
SELECT *
FROM LANCAMENTO
WHERE SUBSTR(LAN_CD_CONTA, 1, 13) = :paramCd_Conta
まあ、この質問はNHibernateの熟練したユーザーの観点からは多分私には分かりませんでした。奇妙なことに、それはより密接な投票者のどれも[タグ:NHibernate]に単一点を持っていないように見える。 (しかし多分私は彼らのプロフィールをちょっと速くチェックしているかもしれません) –
これは残念ですが、削除されたくない場合は、非NHユーザーでも明示的に表示するために質問を編集してください。私は少なくとも構文を編集するつもりですが、 "外国の"エディタとしては、遠すぎることを避けなければなりません。オリジナルのOP(あなた)の意図を保存しなければなりません。 –
ちょっと遅かったですが、Linqラムダで '.SubString()'を直接呼び出すと、 'substr' Firebird関数が呼び出されることがあります。 [tag:linq-to-nhibernate]は文字列で '.SubString()'をサポートします。あなたはそれを試しましたか? –