Oracle Dbに接続するパラメータを使用してサービスを作成しようとしていますが、複雑なクエリを実行し、その結果をJSON形式で返す必要があります。私はこれを助けるDapper ORMをチェックしていました。クエリが複雑であるためDapperクラスのプロパティ名と戻り値のデータ型C#
SELECT
SICD_PRIO_CATEGORY_DESCR.DESCR,
STRS_SESSION3.SESSION_NUM,
Trunc(STRS_SESSION.START_DATE),
STRS_SESSION3.START_DATE,
STCD_ACT_DESCR4.DESCR AS DOSE_ACTIVITY,
decode((decode(sign((DECODE(SIGN((Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))),-1,(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE)),(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))+(STPR_OPTIONS.VALUEN)))),-1,'Y',0,'N','N')), 'N', Decode ((STPR_OPTIONS.VALUEN), '1', trunc(((DECODE(SIGN((Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))),-1,(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE)),(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))+(STPR_OPTIONS.VALUEN)))-1) /7)+1, '0', trunc((DECODE(SIGN((Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))),-1,(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE)),(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))+(STPR_OPTIONS.VALUEN)))/7)), 'Y', (trunc(((DECODE(SIGN((Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))),-1,(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE)),(Trunc(ILRS_DOSE.RESULT_DATE)) - (trunc(STPR_STD_ANML.START_DATE))+(STPR_OPTIONS.VALUEN))) +1)/ 7)-1) , -999) AS RESULT_WEEK
だから他の質問に私は、列名は、クラスのプロパティデータ型と一致しなければならないことがわかりました。
public class StudyData
{
public string DESCR,
public string SESSION_NUM
}
戻り値の型は、すべての列の文字列か、特定の戻り値型である必要があります。また、DateTimeは、C#で日付データ型が表示されないため、両方の日付(18-DEC-12と18-DEC-12 07.52.25.977272000 AM -08:00など)を参照します。私はC#のプログラミングに新しいです、どんな助けも大いに評価されます
問題はおそらくベストプラクティスにも反するパブリックフィールドです...それらをプロパティにする必要があります。 'public string DESCR {get;セット; } '。 –
このクエリを1か所だけで使用しているのであれば、動的結果を使用して実際のDTOにマッピングすることをお勧めします。送信しているJSONオブジェクトに従う必要がある仕様はありますか? – konkked
konkkedこれらはクエリの一部です。クエリtatの実行がより複雑です。 JSONオブジェクトには仕様がありません.JSON形式でクエリ応答を取得できるかどうかを尋ねられました。 – trx