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 =)

questionAnswers(6)

yourAnswerToTheQuestion