問題タブ [nhlambdaextensions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ラムダを使用して「notin」を表現するにはどうすればよいですか?
not in
NHLambdaExtensionsを使用してNHibernateCriteriaAPIで句を作成しようとしています。ドキュメントを読んで、私は次のことをin
行うことで条項を実装することができました
ただし、ラップするとSqlExpression.Not
エラーが発生します
私はこのコードを使用しています
どうすればこれを達成できますか?通常のCriteriaAPIを使用して、これを行うことができました
nhibernate - NHibernate Lambda 拡張機能の「OR」
2 つの条件を OR ステートメントで結合するにはどうすればよいですか?
たとえば、誕生日フィールドに null があるか、このフィールドの値が someDate より小さい従業員を取得したいとします。このコードをどのように書き直す必要がありますか:
asp.net-mvc - ASP.NetMVC-ヘルパーラムダ式ポストアクション
ビューで強い型ヘルパーを使用するために、ラムダ式を使用してこのヘルパーメソッドを作成しました
ヘルパー
見る
コントローラ
私の問題は、MyAccount.DataNascitaが、編集フォームで選択した値(日付の最小値..例:1900/01/01)で設定されていないことです。
投稿の編集アクションでバインドする方法は?
nhibernate - NHibernate 3.1:LambdaExtensionsを呼び出すときのMissingMethodException
NH 3.0から3.1にアップグレードしてから、次のコードを使用する際に問題が発生しました。
これは正常にコンパイルされますが、実行すると、条件にIn条件を追加するとすぐに例外が発生します。
System.MissingMethodException:メソッドが見つかりません:NHibernate.Criterion.AbstractCriterion NHibernate.Criterion.Restrictions.InG(System.String、System.Collections.Generic.ICollection 1<**UNKNOWN TYPE**>).
at NHibernate.LambdaExtensions.SqlExpression.InG(Expression
1式、ICollection`1値)
Criteriaの代わりにQueryOverを使用してクエリを再構築できますが、それは機能しますが、それを行うには、時間がない多くのコードを掘り下げる必要があります。NH 3.0を使用しても、問題はありませんでした。
NH 3.1で何か変更がありましたか、それともdllに奇妙な問題がありますか?
linq - nHibernate linq プロバイダー拡張機能の式のヘルプ
BaseHqlGeneratorForMethod を拡張することにより、nHibernate のカスタム linq 拡張に取り組んでいます。テクニックはここに文書化されています: http://fabiomaulo.blogspot.com/2010/07/nhibernate-linq-provider-extension.html
さまざまな種類の操作でこれらを実装することに成功しましたが、単純な linq 式を完全な式ツリーに変換するのは簡単ではありません。私は今、1つにこだわっています。
この例では、3 つのエンティティがあります。 Employee
、Group
、およびEmployeeGroup
。EmployeeGroup クラスは、Employee と Group の間に多対多の関係を設定します。各従業員が各グループで持つ特定のアクセス許可など、追跡する追加のプロパティがあるため、特に中間クラスを作成する必要があります。したがって、nHibernate の多対多の関係ではなく、2 つの 1 対多の関係があります。
ここで、特定の従業員を含むすべてのグループを取得したいとします。このクエリを書くことができます:
これは問題なく機能しますが、入力するのは大変です。私はむしろこれを行うことができます:
次のような拡張メソッドを作成することから始めます。
これは、グループのローカル リストをクエリするときに機能しますが、nHibernate セッションに対しては機能しません。そのためには、linq 拡張機能も作成して登録する必要があります。記事 (上記のリンク) と同じように、GroupHasEmployeeGenerator
を拡張するクラスを作成しますBaseHqlGeneratorForMethod
。.SupportedMethods
HasEmployee 拡張メソッドを参照するようにそのプロパティを設定しました。
私が迷子になるのは、へのオーバーライドBuildHql
です。構築する式はすぐに複雑になります。私は.Any
句を置き換えているので、組み込みクラスのソースから始めるのが良いでしょうAnyHqlGenerator
。ただし、ソースが元の要素のプロパティであることは考慮されていません。また、where 句を表すラムダ式がないことも考慮されていません。これらのパーツを手動で作成する必要があります。
これまでのところ、私の試みを投稿しても意味がありません.
この単純な式をメソッドのオーバーライドに適した一連のメソッドに変換するのを誰か手伝ってくれませんBuildHql
か?
これに関するより良いドキュメントがあれば、私に知らせてください。ありがとう。
c# - NHibernateからNotSupportedExceptionを生成するこのコードの回避策はありますか?
コードは次のとおりです。
このコードはリファクタリングされたコードであり、オブジェクトとプロパティレベルに分割すると、コードプロジェクト全体で100回繰り返す必要があります。このサイトでの私の調査によると、それはSQL変換と関係があります。しかし、このコードまたはそのバリアントが正常に機能する回避策はありますか?
c# - SQL コマンドをラムダ式に変換するにはどうすればよいですか?
私はこのようなSQLクエリを持っています:
Newsletter_TBL
また、 namedからのすべてのレコードのリストを取得するメソッドもあります。
ニュースレターGellAll()
以前に試してみましたが、うまくいきません:
どうすれば修正できますか?
c# - C# 式 - 既定値を取得するか、int に変換しますか? 整数に
私は以下のようなクラスを持っています
動的式ビルダーを作成しました。場合によっては、intconvert int? to int
またはgetdefaultvalue
int が必要な場合があります
しかし、最後の行を実行すると、型が一致していないため例外が返されますSaleCount
が、合計メソッドは int を返しますか?
誰でも私を助けることができますか?