Types 简洁的属性类型

Types 简洁的属性类型,types,mapping,dapper,Types,Mapping,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 ) ; 如果我在MYTABLE中有一条记录,其中TEXT\u列列包含'12345'作为其值,并且我的模型如下

如果我有如下表格:

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
)  ;
如果我在
MYTABLE
中有一条记录,其中
TEXT\u列
列包含
'12345'
作为其值,并且我的模型如下所示:

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)
}
在返回这一行的测试场景中,一切都会正常返回。但是,如果有来自数据库的文本值,则会发生错误

出现以下问题:

  • 是否可以仅通过Dapper防止此类错误?例如,如果数据库中的类型与模型中的类型不匹配,则引发异常
  • 或者,我是否应该假设Dapper应该与映射良好的对象一起工作(由于其性能提高)

  • 目前可接受的一组答案:

  • 没有
  • 映射应与测试一起仔细完成。Dapper不关心应用程序中的模型和数据库中的模型的匹配类型

  • 感谢@Shyju的合作和时间。

    即使表中的类型是
    varchar
    type,如果其中存储的值是数字,Dapper将读取并将其映射到您的long type属性。