Ferramentas de Utilizador

Ferramentas de Site


dev_net:vb.net:esql

Como utilizar comandos SQL através de ADO.NET Entity Framework

Este artigo irá mostrar as principais diferenças entre a sintaxe normal e a sintaxe ESQL

Recursos utilizados

.NET Framework 4.0

Um modelo Entity Framework

Utilização

Os seguintes exemplos foram utilizados com um model chamado "ArtigosWikiEntities" e a classe utilizada é "Artigos"

A estrutura e dados da tabela é a seguinte:

ID(Int) | Descr(Varchar(50)

1 | Disco externo 120GB

2 | Memoria RAM DDR2

3 | Memoria RAM DDR3

Antes de mais, devem ser importados os Namespaces para facilitar a programação

Imports System.Data.EntityClient
Imports System.Data.Common

Seleccionar todos os campos de uma tabela

Dim Cm As New EntityCommand
Cm.CommandText = "SELECT VALUE Artigos FROM ArtigosWikiEntities.Artigos AS Artigos" 'Em vez de "*" é utilizada a função "VALUE" seguida do nome da tabela, que neste caso é Artigos
Using Cn As New EntityConnection("name=ArtigosWikiEntities") 'Nome da connectionstring guardada no App.config
    Cm.Connection = Cn
    Cn.Open()
    Using Dr As DbDataReader = Cm.ExecuteReader(CommandBehavior.SequentialAccess) 'Como não existe um "EntitiDataReader", é necessário utilizar o "DbDataReader", localizado em "System.Data.Common"
        While Dr.Read
            Console.WriteLine(Dr(0) & " " & Dr(1))
        End While
    End Using
End Using

Output

1 Disco externo 120GB

2 Memoria RAM DDR2

3 Memoria RAM DDR3

Seleccionar alguns campos de uma tabela

Dim Cm As New EntityCommand
Cm.CommandText = "SELECT Artigos.Descr FROM ArtigosWikiEntities.Artigos AS Artigos" 'Deve ser sempre indicado o nome da tabela antes do campo
Using Cn As New EntityConnection("name=ArtigosWikiEntities")
    Cm.Connection = Cn
    Cn.Open()
    Using Dr As DbDataReader = Cm.ExecuteReader(CommandBehavior.SequentialAccess)
        While Dr.Read
            Console.WriteLine(Dr(0))
        End While
    End Using
End Using

Output

Disco externo 120GB

Memoria RAM DDR2

Memoria RAM DDR3

Criar uma Query parametrizada

Dim Cm As New EntityCommand
Cm.CommandText = "SELECT VALUE Artigos FROM ArtigosWikiEntities.Artigos AS Artigos WHERE Artigos.ID = @ID"
Cm.Parameters.Add("ID", DbType.Int32).Value = 1 'Ao contario do SQL, Access, etc., ao adicionar o parametro o "@" não deve ser indicado
Using Cn As New EntityConnection("name=ArtigosWikiEntities")
    Cm.Connection = Cn
    Cn.Open()
    Using Dr As DbDataReader = Cm.ExecuteReader(CommandBehavior.SequentialAccess)
        While Dr.Read
            Console.WriteLine(Dr(0))
        End While
    End Using
End Using

Output

1 Disco externo 120GB

Resumo

Como podemos verificar, para além de LINQ to Entities, também é possível utilizar sintaxe SQL com Entity Framework

Autoria

dev_net/vb.net/esql.txt · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)