Data Access Objects com DB4O : Continuando
Primeiro gostaria de destacar o post de sri_canesh , pois quando nos deparamos com db4o e percebemos a sua importancia, queremos logo usá-lo em todo lugar, e esquecermos para sempre dos bancos relacionais, quando na verdade, não devemos fazer isso.
Agora continuando o post sobre o "pattern" Data Access Objects com db4o, vamos ver como ficaria uma subclasse DAO (alguns chamam de classe sombra).
Primeiro, vamos criar uma classe exemplo da camada de domínio:
namespace Db4oBrasil.Dominio
{
public class Usuario
{
private string _nome;
private string _email;
private string _senha;
public override string ToString()
{
return _nome + " " + _email;
}
}
}
Agora, a classe UsuarioDAO, responsavel pela persistencia de objetos do tipo Usuario.
using System.Collections.Generic;
using com.db4o;
using Db4oBrasil.Dominio;
namespace Db4oBrasil.DAO
{
public class UsuarioDAO : DAO<Usuario>
{
protected override bool ChecarRestricaoCamposNaoNulos(Usuario usr)
{
if(usr.Nome==null || usr.Email==null || usr.Senha==null)
return false;
else return true;
}
protected override bool ChecarRestricaoChavePrimaria(Usuario usr)
{
ObjectContainer db = Db4o.OpenFile(YAPFILE);
try
{
Usuario proto = new Usuario();
proto.Email = usr.Email;
ObjectSet result = db.Get(proto);
if (result.Count==0)
return true;
return false;
}
finally
{
db.Close();
}
}
}
O código fonte, incluindo o arquivo de solução monodevelop (.mds) e a dll do db4o 5.5 para mono, pode ser baixado aqui: Clique aqui
ps: A versão do monodevelop testada foi 0.12, usando gmcs
Dúvidas, sugestões e críticas, comentem...
[]'s
Eduardo Rocha Monteiro
9 comentários:
Cara, Muito bom, eu tava justamente procurando isso. Só tem uma observação: o arquivo do db4o referenciado ta referenciando pro lugar errado, daí tive que ajustar.
falou!
Felipe, vou verificar e consertar esta noite. Obrigado pelo toque
[]'s
Lembrete: Use a versão 2.0 do MONO , A 1,1 vai dá erro por causa do uso do template na linha:
public abstract class DAO< T > where T: new()
e Boaq Sorte !!!
Isso deve funcionar também:
Db4o.configure().objectClass("MinhaClasse.class").cascadeOnDelete(true);
Db4o.configure().objectClass("MinhaClasse.class").cascadeOnUpdate(true);
:D
Carlan Calazans, mas isso não tem muito a ver com o que foi postado...
[]'s
hi every person,
I identified db4obrasil.blogspot.com after previous months and I'm very excited much to commence participating. I are basically lurking for the last month but figured I would be joining and sign up.
I am from Spain so please forgave my speaking english[url=http://learnnewthingsck.info/].[/url][url=http://behindthescenessh.info/bookmarks].[/url][url=http://pamotivationalquotes.info/forum].[/url]
Hello TO all www.blogger.com members,
I just wanted to introduce myself to all of you and say that I am extremely happy to be a new member here[url=http://worlddiscoveryck.info/].[/url] I have been enjoying the conversations here for some time and look forward to participating now[url=http://acbehindthescenes.info/].[/url][url=http://sportsnewsal.info/forum].[/url]
Glad to be a part of the community[url=http://latestnewsci.info/].[/url][url=http://vibehindthescenes.info/].[/url]
the valuable ideas you presented do help our team's investigation for my company, appreaciate that.
- Lucas
It is my first message here, so I would like to say hallo to all of you! It is really diversion to join your community!
Postar um comentário