問題タブ [breeze-sharp]
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# - Xamarin クライアントで BreezeSharp を使用してメタデータ リソースを見つけることができません
Breeze を使用してデータを提供する ASP.Net WebApi サイトをセットアップしました。また、webapi と正常に通信してデータを取得する BreezeJs を使用する角度のある webclient もあります。
現在、Breeze# を使用して Xamarin クライアントを WebApi に接続しようとしていますが、それを機能させることができず、「メタデータ リソースが見つかりません」というエラーが発生します。
Breeze# ToDo.Xamarin の例"Unable to locate metadata resource for: http://localhost:60851/breeze/todos/"
を使用してみましたが、ブラウザーで
URLhttp://localhost:60851/breeze/todos/Metadata
が正常に機能しているにもかかわらず、エラーで同じ問題が発生
しました。
フィドラーを実行していますが、アプリからサーバーに接続しようとしません。
クライアントにサーバーと通信させるために何が欠けていますか?
mvvm-light - Xamarin Forms Entry とバインドする BreezeSharp エンティティ プロパティ
Xamarin Forms フレームワークを使用してモバイル アプリケーションを開発しています (現時点では Android のみを対象としています)。MVVMLight ツールキットを使用して、MVVM パターンを利用するようにアプリケーションを構築しました。データ管理には BreezeSharp を使用しています (Web クライアント用に実装された Breeze フレンドリー サーバーが既にあるため)。
私たちが対処している問題は、Breeze エンティティのプロパティにバインドされている Xamarin Forms Entry コントロールに入力すると、アプリケーションがクラッシュすることです。
Xaml ビューでのエントリ コントロール:
ViewModel のプロパティ (Set() は MVVMLight ViewModelBase から取得):
Breeze CLR タイプのプロパティ:
入力フィールドに数文字しか入力しないと、アプリケーションがスタック トレースでクラッシュします。
私には多くのイベントが発生し、イベント スタックがオーバーフローするように見えます。
非 Breeze プロパティにバインドされている場合、エントリは正常に機能します。切り離されたエンティティにバインドされている場合も正常に機能しています。
Breeze EntityAspect.cs コードを掘り下げた後、すべてがこの関数に来ることがわかりました。
そこで、以下を使用して Breeze でのイベントの発生を無効にしました。
これにより、エントリのバインドに関する問題が解決されたようですが、これが他の問題への扉を開くかどうかはわかりません。
このアプローチの結果は何ですか?
これらの EntityPropertyChanged および PropertyChanged イベントは、Breeze コードで使用されていますか、それとも私たちのコードがそれらにアタッチするためだけに意図されていますか?
または、この問題に対する他のアプローチがありますか?
UPDATE : 結果は次のとおりです。UI に複数の要素が同じプロパティにバインドされている場合、そのプロパティを 1 つの場所で更新すると、他の場所では変更が表示されません。
例: ListView から要素を選択し、選択した要素をいくつかの入力フィールド (ListView の外部) にバインドします。その入力フィールドを介して要素を更新すると、変更は ListView に表示されません (ListView には通知されないため)。
Breeze PropertyChanged メカニズム (EntityPropertyChanged および ForceEntityPropertyChanged) を有効にすると、これはそのまま使用できますが、前述のように、アプリケーションのクラッシュに問題があります。
基本エンティティ (Breeze BaseEntity から継承したもの) に OnPropertyChanged メソッドと RaisePropertyChanged メソッドを実装することになりました。この手法は、ObservableObject の MVVMLight 実装に似ています。
このコードは正常に動作します (アプリケーションがクラッシュすることはありません):
また、必要なときはいつでも RaisePropertyChanged を呼び出すことができます。
c# - Breeze Sharp - 展開がラムダ式で機能しない
次のように、ラムダを介してナビゲーション プロパティを拡張しようとすると:
私のクエリは失敗します
内部例外
内部例外メッセージ:
式 'x => x.Dealers' は、ナビゲーション パスの有効な式ではありません。ラムダ式の本体内でサポートされている唯一の操作は、MemberAccess と TypeAs です。式には少なくとも 1 つの MemberAccess が含まれている必要があり、TypeAs で終わることはできません。
それでも、文字列パラメーターを介して展開しようとすると:
すべてが正しく動作しているように見えます。
私の「地域」ブリーズ クライアント エンティティ:
マイ ディーラー ナビゲーション エンティティ:
私の最新の試みは、「ForeignKey」データ注釈を介して外部キー関係を明示的にすることでしたが、結果のエラーは同じです。
ブリーズシャープv0.6.0.3を使用しています。
更新 1: 上記とまったく同じクエリではありませんが、同じ結果です。私がステップスルーしてきた Breeze.Sharp ソースコードのスクリーンショットです。拡大画像はこちら
angularjs - Breeze 複合型配列の検証 - 問題
複合型配列に存在するデータ プロパティの検証を行おうとしています。以下に示されているのは、サンプルの Breeze スキーマと使用されている複合型です。
ブリーズスキーマ:
複合型: (Address.json)
この場合、サンプル データ オブジェクトは次のようになります。
}
アドレスを変更すると、アドレス データ プロパティに関連付けられたバリデータがトリガーされます。
私の質問は次のとおりです。最初のオブジェクト ( mailingAddress[0]
) のアドレスを変更しています。最初のアドレス オブジェクトが変更されたことを、どのように Breeze が認識しますか? 変更された配列インデックスを取得する方法はありますか?
現在のコンテキストを確認しましたpropertyName
が、正確なパスはありません。
- 期待 :
mailingAddress[0].address
- 実際 :
mailingAddress.address
上記の問題により、カスタム検証を適切に行うことができません。この問題の解決策を教えてください。
ありがとう、ディネッシュ
javascript - 1 つの saveBundle で多対多テーブルを削除および変更すると、saveChanges が失敗する
Unique インデックスを持つ多対多テーブルのレコードを削除しようとしています。したがって、コンポーネントがリストに追加されている場合、順序を 1 つ増やす必要があります。そうしないと、バックエンドで DB への保存が許可されません。
リスト内のこれらのコンポーネントの1つを削除すると、これらのコンポーネントの順序にギャップがないように、それよりも高い順序でコンポーネントを変更するときに問題が発生します。
シナリオ:
多対多テーブルには、一意のインデックスと componentId の一意の 5 つのコンポーネントが取り込まれます。コンポーネント entityAspect は削除済みに設定されています (保存はまだ行われていません)
3 番目のコンポーネントを削除すると、コンポーネント 4 と 5 のインデックスがそれぞれ 1 ずつ減るため、新しいインデックスは 1245 ではなく 1234 になります。 .
また、saveMap を上書きしようとしました。
ただし、これはそよ風の実行方法を変更するようには見えません。
asp.net-mvc-4 - (0x800a138f) BreezeJS を Durandal プロジェクトに追加した後、IE8 で未処理の例外が発生する
私はミックスにかなり慣れていないので、.NET 4.0 の Breeze/Durandal 2 の経験のある人がこのエラーで私を支援できることを願っています。
私は、Durandal 2/KO/Require SPA プロジェクトに取り組んでおり、最近はうまくコンパイルされ、IIS7 で実行されています。このアプリは IE8 と互換性がある必要があるため、shim および sham js ライブラリを次のようにインポートしました。
また、DB からデータにアクセスできるようにする必要があるため、BreezeJS をミックスに追加してみました。Breeze のドキュメントによると、これを機能させるには、空のテンプレートを使用して VS でプロジェクトを ASP.NET MVC4 プロジェクトとして作り直す必要がありました。その後、NuGet を使用して Breeze ファイルをインポートしました。
次に、既存のビュー、コントローラー、ライブラリ、css などを新しく作成したプロジェクトに追加しました。IE8 を使用してコンパイルすると、次のエラーが発生します。このエラーは、Firefox または Chrome では表示されません。
0x800a138f - Microsoft JScript ランタイム エラー: 「ルート」が null またはオブジェクトではありません
これは JQuery との互換性の問題かもしれないと思ったので、別のバージョンを試してみました。DocType が次のように設定されていることを確認しました。
そして、私は次のメタタグを持っています:
ただし、これらのいずれかが IE8 と Durandal で問題を引き起こすとは思えません。他の誰かが私と同様の問題を経験しましたか? MVC4 側で何かを構成していないため、このエラーが発生していますか?
アドバイスをいただければ幸いです。
ありがとうございました
c# - Breeze.Sharp MVVM がデータベースから結果を取得しようとしています - エラー
データベースからエンティティを取得するために Breeze.Sharp を使用しています。「結果」を取得しようとすると、次のエラーが発生します。
CLR 型の既定のリソース名が見つかりません:
AHS.Apps.Call.WPF.Entities.CallActionCategory
Breeze コードをステップ実行しましたが、ドキュメントはほとんどありません。これが私の方法です:
breeze-sharp - ComplexObject を返すと、「この名前の型は存在しますが、Breeze.Sharp.EntityType ではありません」というエラーが発生します。
次の BreezeController があります。
これは、entityframework edmx ファイルで公開されている sqlserver 関数を呼び出すことになっている関数 'RegrasAProcessar' を公開します。予想どおり、sqlserver 関数 'GetRegrasAProcessar' は、クライアントに送り返したい complexType を返します。クライアントには、次のコードが宣言されています。
クラス RegraInfo を complexObject として受け取ることを期待しています。問題は、次のコードでサーバー関数を呼び出すときです。
「この名前の型は存在しますが、Breeze.Sharp.EntityType ではありません」というエラーが表示されます。このアプローチの何が問題なのですか? 私は何かを変更する必要がありますか?このトピックに関するヘルプをいただければ幸いです。よろしくお願いします。