問題タブ [dataservice]

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 投票する
0 に答える
85 参照

wcf - Data サービスでの DB データの取得にかかった時間の測定

WCF Data サービスを使用して、データベースからのデータにかかる時間を測定する方法はありますか。分析目的でログに記録できるようにしますか?

これに関する指針や提案は役に立ちます。

前もって感謝します!

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

wcf - データ サービスでのデータベース アクセス時間の測定

WCF データ サービスがデータベースからエンティティを取得するのにかかる時間を測定する方法はありますか。

たとえば。データ サービスを介して NortherWind DB を公開し、以下の URL を介して Orders エンティティにアクセスしたとします。

DB から Orders テーブルの内容を取得するのにかかる時間を測定する方法。

前もって感謝します

0 投票する
2 に答える
2042 参照

excel - Excel のソースとしての OData WCF データ サービス

OData WCF Data Service があり、Reflection Provider を使用してデータを公開しています。現在、たとえば、次の構造を持つ環境のコレクションを公開しています。

{環境} - 名前 -ID 説明 - {UpdateTime}
--StartTime --EndTime





ここで、{UpdateTime} - ComplexType は、環境が更新された時間のコレクションであり、ここでの関係は 1:N です。

Excel を使用して、その OData サービスからいくつかのレポートを生成しています。データをインポートした後、UpdateTime コレクションがテーブルに表示されません。環境コレクションで $expand も試しましたが、うまくいきません。私が考える唯一の方法は、関連するコレクションをエンティティ型として公開し、関係を設定することですが、 {UpdateTime} コレクションはそれ自体では意味がありません。

質問: ComplexTypes を Excel に表示する方法はありますか?

ありがとうございました!

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

c# - 複数のメソッド呼び出しで同じ DataServiceContext を共有する - 良いか悪いか?

DataServiceContext インスタンスをどのように使用するかについての標準的な慣行は何なのか疑問に思っています。コンテキストで操作を実行する必要がある複数のメソッドを持つクラスがある場合、各メソッド内にコンテキストの新しいインスタンスを作成するか、コンテキストをすべてのメソッドで共有されるクラスの単一メンバーにする必要があります?

私が取り組んでいるコードで、別の開発者が作成したコメントを最近見たので、これを尋ねています。これは、いくつかのオブジェクトを追加した後、さらに操作を実行する前にコンテキストを再作成する必要があることを述べています。

つまり、これを行う必要があります:

またはこれ:

?

また、これは ASP.NET MVC アプリケーションのコンテキストにあることを付け加えておく必要があるため、ここでの ServiceHelper クラスはページ要求ごとに再構築されます。

編集

これらは短命のクラスであるため、Msft によればどちらも技術的に有効であるように思われますが、どちらも等しく「安全」で同等であるかどうかはまだ疑問です。つまり、いくつかのエンティティを追加/更新して SaveChanges を呼び出すと、別のアプリケーションが同じエンティティを更新する可能性があり、同じコンテキスト インスタンスを使用してそれらのエンティティを再度取得すると、すべてが代わりに作成した場合と同じように動作します。 2 回目の操作の前に新しいコンテキストが必要ですか?

結論

私はこれを見つけたばかりで、違いを説明するのに役立つと思います:

デフォルトでは、クライアントは、DataServiceContext によってまだ追跡されていないエンティティのオブジェクトへの応答フィードのエントリのみを実体化します。つまり、すでにキャッシュにあるオブジェクトへの変更は上書きされません。この動作は、クエリおよび読み込み操作の MergeOption 値を指定することによって制御されます。このオプションは、DataServiceContext で MergeOption プロパティを設定することによって指定されます。デフォルトのマージ オプション値は AppendOnly です。これは、まだ追跡されていないエンティティのオブジェクトのみを具体化します。つまり、既存のオブジェクトは上書きされません。クライアント上のオブジェクトへの変更がデータ サービスからの更新によって上書きされないようにするもう 1 つの方法は、PreserveChanges を指定することです。OverwriteChanges を指定すると、

したがって、いくつかのエンティティを更新し、別のアプリケーションがさらに変更を加えてから、同じ DataServiceContext インスタンスを使用してそれらのエンティティを再度取得した場合MergeOption、エンティティをそのままの状態で取得するかどうかは、設定​​に依存するように見えますデータベース内、または最後にローカルに持っていた状態だけです。

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

sap - YYYY を使用して 2001 の代わりに 0001 を取得する方法

次のように、タイムスタンプが異なる列があります。

5771.10.04 16:07:23.800913000

0967.06.17 06:20:28.800906000

3857.06.18 03:49:03.800906000

01.04.29 16:45:04.400909000

次のように、これらを小数に変換する必要があります (数百万行の結合に使用します)。

57711004160723800913

9670617062028800906

38570618034903800906

10429164504400909

そして、私はこの関数を使用してこれを行います:

cast( substr(to_char($timestamp,'YYYYMMDDHH24MISSFF'),1,20), 'decimal(20,0)');

問題は、YYYY 変換が行われる年が 2 桁しかない最後のタイムスタンプです。01 を 0001 に変換する必要がありますが、代わりに 2001 に変換されます。

これを迅速/非集中的な方法で解決する方法はありますか?

Tl;dr BODS で 01 年を 2001 年ではなく 0001 年に変換する必要があります。