2016-04-12 11 views
0

私は、次のような表がある場合:Dapperのプロパティタイプ

CREATE TABLE MYTABLE 
(
    ID NUMBER(15) NOT NULL CONSTRAINT IFS_ROUTINE_ADGROUP_PK_PRIM PRIMARY KEY, 
    NUMBER_COLUMN NUMBER(15) NOT NULL, 
    TEXT_COLUMN VARCHAR2 (50) NOT NULL 
) ; 

私はTEXT_COLUMN列がその値として'12345'を含有するMYTABLEで1つのレコードを持っていると私のモデルは以下の通りである場合:

public class MyModel 
{ 
    public long ID; 
    public long NUMBER_COLUMN; 
    public long TEXT_COLUMN; //this is an error (since the type in the database is text) 
} 

この単一の行が返されるテストシナリオでは、すべてが正常に返されます。ただし、データベースからのテキスト値がある場合は、エラーが発生します。

次の質問が生じ:

  1. それが唯一のDapperのを通じてこの種のエラーを防ぐことは可能ですか?たとえば、データベースの型がモデルの型と一致しない場合に例外をスローするなどです。
  2. 代わりに、Dapperがマッピングされたオブジェクトでうまく動作するという前提で動作するべきですか(パフォーマンス上の理由から)?
+1

テーブルの型が 'varchar'型であっても、それに格納された値が数値であれば、Dapperはそれを読み込んであなたのlong型のプロパティにマップします。 – Shyju

答えて

0

当面回答の許容セット:

  1. マッピングは慎重にテストと一緒に行うべきです。 Dapperは、アプリケーション内のモデルとデータベース内のモデルとの型のマッチングについては気にしません。

ご協力ありがとうございます。&時間です。

関連する問題