Freigeben über


Propriedades Read-Only no Entity Framework

Recentemente tenho recebido vários e-mails sobre o entity framework, o que é ótimo, pois me força a estudar ainda mais a tecnologia e passo a conhecer problemas reais que os profissionais espalhados pelo Brasil estão passando. Então vamos a um post rápido...

Como eu crio propriedades somente para leitura no EF?

Se notarmos no designer do seu modelo EDM, quando você clica sobre uma propriedade da entidade, você pode ver que existem duas configurações de code generation (setter e getter), mas essas não estão habilitadas para edição (provavelmente isso será efetivo no próximo beta, sei lá). Então temos que recorrer ao velho e bom XML para nos ajudar.

Abra o seu arquivo edmx com o editor XML, encontre a propriedade que quer alterar e quando digitar “a:”, conte com a ajuda do intellisense para definir a visibilidade dos métodos de acesso (propriedades no .NET), onde poderá escolher entre public, internal e private. Exemplo:

<Property Name="Titulo" Type="String" Nullable="false" MaxLength="100" Unicode="false" a:Setter="Private" xmlns:a="https://schemas.microsoft.com/ado/2006/04/codegeneration" />

Nesse caso, como a visibilidade está como private, somente outros métodos da própria classe podem acessar a propriedade. Você também pode definir o acesso como internal, para possibilitar o acesso de outras classes dentro do mesmo assembly. O importante aqui é notar que não tendo acesso ao método Set, a propriedade da entidade passa a ser somente leitura para quem está manipulando o objeto.

[]s

Luciano Caixeta Moreira

luciano.moreira@microsoft.com

=============================================================

This posting is provided "AS IS" with no warranties, and confers no rights

=============================================================

Comments