Si hoy en día no utilizas ningún ORM es que no vives en este mundo. Por supuesto, yo NO vivo en este mundo, así que para declararme oficialmente ciudadano, hemos optado por utilizar ADO.NET Entity Framework. Auguro que el camino será largo y lleno de escollos que salvar, pero seguro que cuando lleguemos al final, todas nuestras aventuras no habrán sido en balde.
Para comenzar con EF, y puesto que aún estamos en periodo de aprendizaje, simplemente veremos la equivalencia de tipos que realiza EF entre los tipos disponibles en SQL Server Express 2008 R2 y los tipos .NET.
Recuerda que en este otro post, también tenemos las equivalencias entre los tipos de SQL y el proveedor de ADO.NET SqlClient (System.Data.SqlClient.SqlDbType) y también para la factoría de proveedores (System.Data.DbType).
Lo primero que necesitamos es una tabla con columnas para todos los tipos de datos disponibles en SQL.
CREATE TABLE [dbo].[development_DataTypes](
[Cbigint] [bigint] NOT NULL,
[Cbinary] [binary](50) NULL,
[Cbit] [bit] NULL,
[Cchar] [char](10) NULL,
[Cdate] [date] NULL,
[Cdatetime] [datetime] NULL,
[Cdatetime2] [datetime2](7) NULL,
[Cdatetimeoffset] [datetimeoffset](7) NULL,
[Cdecimal] [decimal](18, 0) NULL,
[Cfloat] [float] NULL,
[Cgeography] [geography] NULL,
[Cgeometry] [geometry] NULL,
[Chierarchyid] [hierarchyid] NULL,
[Cimage] [image] NULL,
[Cint] [int] NULL,
[Cmoney] [money] NULL,
[Cnchar] [nchar](10) NULL,
[Cntext] [ntext] NULL,
[Cnumeric] [numeric](18, 0) NULL,
[Cnvarchar] [nvarchar](50) NULL,
[Cnvarcharmax] [nvarchar](max) NULL,
[Creal] [real] NULL,
[Csmalldatetime] [smalldatetime] NULL,
[Csmallint] [smallint] NULL,
[Csmallmoney] [smallmoney] NULL,
[Csql_variant] [sql_variant] NULL,
[Ctext] [text] NULL,
[Ctime] [time](7) NULL,
[Ctimestamp] [timestamp] NULL,
[Ctinyint] [tinyint] NULL,
[Cuniqueidentifier] [uniqueidentifier] NULL,
[Cvarbinary] [varbinary](50) NULL,
[Cvarbinarymax] [varbinary](max) NULL,
[Cvarchar] [varchar](50) NULL,
[Cvarcharmax] [varchar](max) NULL,
[Cxml] [xml] NULL,
CONSTRAINT [PK_development_DataTypes] PRIMARY KEY CLUSTERED
(
[Cbigint] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
A continuación, lo primero que observamos es que hay algunos tipos de SQL que no están admitidos por EF. Estos tipos son:
· geograhpy
· geometry
· hierarchyid
· sql_variant
Para el resto de tipos, aquí está la equivalencia:
SQL Server Express 2008 R2 | .NET |
bigint | Int64 |
binary | Binary |
bit | Boolean |
char | String |
date | DateTime |
datetime | DateTime |
datetime2 | DateTime |
datetimeoffset | DateTimeOffSet |
decimal | Decimal |
float | Double |
geography | N/A |
geometry | N/A |
hierarchyid | N/A |
image | Binary |
int | Int32 |
money | Decimal |
nchar | String |
ntext | String |
numeric | Decimal |
nvarchar | String |
nvarchar(max) | String |
real | Single |
smalldatetime | DateTime |
smallint | Int16 |
smallmoney | Decimal |
sql_variant | N/A |
text | String |
time | Time |
timestamp | Binary |
tinyint | Byte |
uniqueidentifer | Guid |
varbinary | Binary |
varbinary(max) | Binary |
varchar | String |
varchar(max) | String |
xml | String |
Un saludo!.
No hay comentarios:
Publicar un comentario