Para atualizar objetos que já estão no banco de dados é preciso entender como é feito o "posicionamento de registro", ou seja, a requisição de um registro específico de uma tabela e sua reflexão em objeto.

As informações necessárias para isso estão em sua classe. Repare que suas propriedades que são chave primária de uma tabela estão marcadas com o atributo PrimaryKeyField. Este atributo possui algumas propriedades, veja abaixo as principais:

* IsIdentity (Boleano): Define se o campo de chave primária é autoincrementado. Ou seja, gerado automaticamente.

//
// Caso seja auto incremetado
//
PrimaryKeyField(IsIdentity = false)
public int PkCategoria { get; set; }

ou

//
// Caso não seja auto incremetado
//
PrimaryKeyField(IsIdentity = true)
public int PkCategoria { get; set; }

* Column (String): Define o nome do campo na tabela, é usado quando queremos utilizar a propriedade com um nome diferente do que está sendo utilizando no banco de dados. (veja mais sobre este recurso aqui).

//
// Caso não seja auto incremetado e o campo tenha
// nome diferente da propriedade da classe
//
PrimaryKeyField(IsIdentity = false, Column = "PkCategoria")
public int CategoryId { get; set; }

ou

//
// Caso seja auto incremetado e o campo tenha
// nome diferente da propriedade da classe
//
PrimaryKeyField(IsIdentity = true, Column = "PkCategoria")
public int CategoryId { get; set; }

Se um objeto possui apenas uma propriedade como PrimaryKeyField, então precisamos apenas informar este valor no momento de construí-lo, da seguinte forma:

//
// onde 1 é o id desta categoria no banco de dados.
//
Category category = new Category(1);

Depois de fazer isso, seu objeto "category" já está com todas as propriedades definidas com as informações que foram encontradas no banco de dados e disponíveis para serem acessadas.

...
txtCategory.Text = category.CategoryName;
chkActive.Checked = category.IsActive;
...

Caso um objeto tenha duas ou mais chaves primárias, devemos informá-las na ordem em que estão definidas em nossa classe e não na ordem como elas estão dispostas no banco de dados. Ou seja, se uma tabela possui duas chaves na seguinte ordem: BlogId, UserId e nossa classe as define na ordem: UserId, BlogId. Devemos construir o objeto passando os argumentos na mesma ordem da classe.

//
// posicionando o objeto onde 12 é o UserId e 44 o BlogId
//
Blog blog = new Blog(12, 44);

//
// atualizando as informações
//
blog.Title = "Novo Título do meu blog";
blog.Owner = User.UserId;
blog.Save();

Pronto! Você já está pronto para atualizar qualquer registro no seu banco de dados.

Last edited Mar 9, 2010 at 1:39 PM by ivanpaulovich, version 1

Comments

No comments yet.