問題タブ [fody-propertychanged]

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.

0 投票する
1 に答える
344 参照

xamarin.android - Mobile Center は Xamarin Build であり、pthread_mutex_lock エラーで失敗します

Visual Studio App Center を使用して、Xamarin.Forms アプリを Xamarin.Android に構築しています。アプリは自分のマシンの開発およびリリース構成で正常にビルドされますが、Mobile Center でビルドしようとすると、ビルドはほぼ完了します (つまり、MSBuild ステージ) が、次の致命的なエラーが発生します。

0 投票する
1 に答える
444 参照

fody-propertychanged - Fody Property変更されたセッターロジック

Fody (MvvmCross アプリ) でこれを変更する方法はありますか:

次のようなよりエレガントなものに:

PropertyChanged が発生した後に Recalculate() メソッドをインターセプトして呼び出す方法は?

0 投票する
0 に答える
58 参照

.net - UnitOfWork 抽象化の背後にある EF - 挿入された ID を取得します (もう一度)

私のソリューションでは、EntityFramework コンテキストが UnitOfWork with repositories パターンなしで抽象化されるのには、次のような複数の理由があります。

  • DB ファーストのアプローチ (edmx および自動生成されたエンティティ)
  • 純粋な ADO および EF の実装
  • ドメインとデータベース スキーマの分離

そのため、2 つの関連するエンティティを追加する必要があるという問題が発生しましたが、残念ながら DB スキーマはその関係に外部キーを提供しません。CustomerAddress関係があるとしましょう。そのため、通常の EF 機能を使用して、これらのエンティティを「一度に」データベースに格納することができなくなります。つまりCustomer、最初に保存する必要があり、次に最初の挿入から保存Addressする必要があります。CustomerID

私が抱えている問題は、ドメインモデルを UnitOfWork リポジトリに渡すときです

CustomerIDそれを次の db リクエストに渡すことができません。リポジトリ メソッド.SaveChanges()で EF コンテキストに対して呼び出すことで、パターンを壊したくありません。.Add

調査の結果、このような場合、このプロセスをトランザクションにラップすることが最善であることがわかりました(これにより、efcontext.SaveChanges()Repository メソッド内で使用する必要があります)が、UnitOfWork.SaveChanges()実際にはトランザクション全体をコミットします。

しかし、SOの回答では見たことのない別のアプローチも見つけました。自動生成されたクラスのCustomerIDプロパティの変更についてドメインモデルに「通知」できる方法があるかどうかを調査しました。Customerそして、それを支援するライブラリがあります: https://github.com/Fody/PropertyChanged

自動生成されたEF クラスは次のように定義されているため、次のpartialように記述できます。

そして.Addメソッド:

そのおかげで、自動生成されたコードを変更していません。UoW パターンを大幅に壊すこともなく、挿入された ID を外部に配信できます。

しかし、私の質問は、そのアプローチが受け入れられるかどうかわからないことと、どちらのアプローチを使用するか (トランザクションまたは Fody) がわからないということです。たぶん、その問題にはさらにいくつかの解決策がありますか?