Este tópico tem como principal objetivo passar de maneira superficial o conceito do o framework de acesso a dados Entity Framework que consiste na abstração do banco de dados em entidades orientadas a objetos, dispensando assim o conhecimento - por parte do programador - da tecnologia SQL.
Basicamente precisaremos de um banco de dados MySQL. Mas caso não seja possÃvel, poderá utilizar qualquer outro banco de dados, desde que tenha o provider devidamente instalado no Visual Studio (exceto no caso do SQL Server que já é nativo do Visual Studio).
Em um novo tópico, farei uma abordagem mais avançada do Entity Framework.
Aprenda a utilização básica do Linq to Entities, mas antes de iniciarmos, vamos criar uma tabela simples, em seu banco de dados MySQL para criarmos o GridView para listarmos as “frutas cadastradas no sistema”:
CREATE TABLE `FRUTAS` (
`FrutaID` int(11) NOT NULL AUTO_INCREMENT,
`Nome` varchar(30) NOT NULL,
`Descricao` varchar(200) NOT NULL,
PRIMARY KEY (`FrutaID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
INSERT INTO `FRUTAS` (`FrutaID`, `Nome`, `Descricao`) VALUES
(1, 'Maçã', 'A maçã, além de saborosa, tem considerável valor nutritivo.'),
(2, 'Laranja', 'A vitamina C, elemento nutritivo mais importante da laranja, se oxida e se perde com facilidade.'),
(3, 'Banana', 'A banana é a fruta mais consumida no Mundo e no Brasil.'),
(4, 'Uva', 'A uva é o fruto da videira (Vitis sp.), uma planta da famÃlia das Vitaceae.'),
(5, 'Melancia', 'Melancia (Citrullus lanatus) é o nome de uma planta da famÃlia Cucurbitaceae e do seu fruto. ');
PASSO 1:
Crie uma nova aplicação web C#, e arraste dois controles para a página principal Default.aspx, sendo:
Button - instancie-o com o id “btnCriarFruta”
Gridview - instancie-o com o id “GridView1″

Basicamente o código deve ficar assim no ASP.NET:
PASSO 2:
Clique com o botão direito e adicione um novo repositório clicando em: ADD > New Item > “ADO.NET Entity Data Model” > e entre com o nome “Banco1.edmx”.

Clique em ADD para criar o novo repositório.
PASSO 3:
Aparecerá então uma nova janela para você optar entre gerar um data model a partir do banco de dados que você informará, ou um data model vazio onde você irá criar todas as entidades.
Selecione a opção “Generate from database” e clique em “Next”.

PASSO 4:
Na nova janela, clique na opção “New connection” e informe os dados de acesso ao seu banco de dados. Teste a conexão clicando no botão “Test connection” para se certificar de que as informações do banco estão corretas.

Em seguida, feche a janela de nova conexão e então marque a opção:
“No, exclude sensitive data from the connection string. I will set in my application code.”

A partir do ASP.NET 2.0, um recurso chamado “Protected Configuration” foi disponibilizado para permitir a criptografia de informações confidenciais em arquivos de configuração - como é o caso da connection string criada pelo Entity Framework. Mas não iremos utilizá-la neste momento, por isso estamos descartando.
Coloque o nome do banco de entidades como “banco1Entities” e em sguida clique em “Next”.
PASSO 5:
Selecione a tabela desejada, no nosso caso, como o banco só possui uma tabela, selecionei todas as tabelas. Mas poderÃamos selecionar apenas determinadas tabelas (assim como Views e StoredProcedures) para serem importados para o nosso entity data model.
Mantenha o nome do DataModel como “banco1Model” e em seguida clique em “Finish” para finalizar a construção do nosso data model.

Ao clicar em “Finish”, verifique em sua solution que uma connection string diferenciada foi criada em seu web.config.
Visualização do nosso Entity Data Model com a entidade Frutas mapeada. Perceba que o visual é semelhante ao de visualização de diagrama de classes. Isto se deve ao fato de que ambos são quase a mesma coisa. Agora, uma fruta em nosso sistema é uma classe.

PASSO 6:
Criaremos agora em nosso arquivo code behind “Default.aspx.cs” um novo método para cadastrar uma nova fruta no repositório. Equivalente ao INSERT do SQL. Para isto, daremos dois cliques no botão criado anteriormente para que este método seja gerado.
Neste método criaremos uma instancia do contexto do banco de dados:
protected void btnCriarFruta_Click(object sender, EventArgs e)
{
using (var db = new banco1Entities())
{
}
}
Utilizando o “using” no C# 4.0, não é necessário fechar o contexto pois a conexão e o objeto serão eliminados na chave que fecha o seu statement.
Agora, criaremos o equivalente ao insert do sql no linq to entities:

Perceba que ao chamarmos o contexto (”db”) aparecerão métodos básicos para gerenciamento de dados no nosso banco de dados, ou melhor, no nosso contexto do banco de dados. As transações efetuadas até este momento, são simplesmente desconectadas e só valerão efetivamente quando chamarmos o método para salvar as modificações (utilizaremos mais a baixo).
Então, neste caso do “db.AddToTable“, percebe-se que basta adicionar um novo objeto normalmente:
protected void btnCriarFruta_Click(object sender, EventArgs e)
{
using (var db = new banco1Entities())
{
db.AddToFRUTAS(new FRUTAS()
{
Descricao = "Mamão, papaia ou ababaia é o fruto do mamoeiro ou papaeira.",
Nome = "Mamão"
});
db.SaveChanges();
}
}
Objeto inserido no contexto.
Agora precisamos apenas salvar a inserção feita, complementando nosso código com a seguinte instrução:
db.SaveChanges();
Nosso código ficando então finalmente da seguinte maneira:
protected void btnCriarFruta_Click(object sender, EventArgs e)
{
using (var db = new banco1Entities())
{
db.AddToFRUTAS(new FRUTAS()
{
Descricao = "Mamão, papaia ou ababaia é o fruto do mamoeiro ou papaeira.",
Nome = "Mamão"
});
db.SaveChanges();
}
}
Agora já temos a inclusão de um objeto no nosso contexto. Podemos então executar o projeto e testar a inclusão:
Passo 7:
O próximo passo, é fazermos o equivalente a
"SELECT * FROM FRUTAS"
Para isso, no método Page_Lod adicionaremos a seguinte instrução:
protected void Page_Load(object sender, EventArgs e)
{
// Instancia contexto com o repositório
using (var db = new banco1Entities())
{
// Seleciona todos os itens da tabela de frutas
var lista = (from f in db.FRUTAS
select f).ToList(); // Transforma o resultado em uma lista
GridView1.DataSource = lista; // Passa a lista para o DataSource do GridView
GridView1.DataBind(); // Carrega os dados do DataSource no GridView
}
}
Agora basta testar a aplicação e ver funcionando.
Basicamente é isto.
Disponibilizei a solution completa no link abaixo para estudo:
http://www.mauricio-luis.com/blog/exemplos/linqtoentitiesbasico.rar