omo posso anexar um objeto do Entity Framework que não seja do banco de dado
Tenho uma separação completa dos meus objetos do Entity Framework e dos meus objetos POCO, apenas os traduzo para frente e para trás ...
i.e:
// poco
public class Author
{
public Guid Id { get; set; }
public string UserName { get; set; }
}
e então eu tenho um objeto EF "Autores" com as mesmas propriedades ..
Então, tenho meu objeto de negócios
var author = new Author { UserName="foo", Id="Guid thats in the db" };
e eu quero salvar este objeto, então eu faço o seguinte:
var dbAuthor = new dbAuthor { Id=author.Id, UserName=author.UserName };
entities.Attach(dbAuthor);
entities.SaveChanges();
mas isso me dá o seguinte erro:
Um objeto com um valor EntityKey nulo não pode ser anexado a um contexto de objet
EDITAR Parece que eu tenho que usar entity.AttachTo ("Authors", dbAuthor); para anexar sem uma EntityKey, mas tenho seqüências mágicas codificadas, que serão quebradas se eu alterar os nomes dos conjuntos de entidades e não tiver nenhuma verificação do tempo de compilação ... Existe uma maneira de anexar que mantenha a verificação do tempo de compilação ?
Eu espero que eu seja capaz de fazer isso, como seqüências de caracteres codificadas matando validação em tempo de compilação seria uma porcaria =)