Datacontex, nombre de la tabla

16/12/2008 - 13:04 por Paul | Informe spam
Hola,

Tengo un datacontext, por ejemplo con dos tablas, tabla1 y tabla2.

Como puedo saber pr codigo en lnombre de la tabla?
En dataset era por ejemplo ds.Tabla1.TableName, pues un equivalente de
esto en datacontext.

Gracias

Preguntas similare

Leer las respuestas

#6 SoftJaén
17/12/2008 - 11:01 | Informe spam
"Paul" preguntó:

Yo tengo

<Table(Name:="dbo.Cliente")> _
Partial Public Class Clientes

End Class

Quiero conseguir el nombre "Clientes" es decir el nombre que el le da
a la clase



¿Cómo obtendrías el nombre de cualquier clase incluida en tu proyecto? Digo
yo que tendrías que recurrir a técnicas de reflexión para enumerar las
clases existentes en tu proyecto.

Tienes que tener en cuenta que los objetos «System.Data.Linq.Table(Of T)» se
encuentran implentados como propiedades públicas del objeto DataContext que
hayas creado, y cada propiedad devuelve una referencia de la clase «Table(Of
T)» correspondiente, en tu caso, la propiedad «Clientes» del objeto
DataContext devolverá una referencia a la clase «Clientes»:

Dim dc As New DataClasses1DataContext

' Referenciamos la tabla Clientes a través de la propiedad
' Clientes del objeto DataContext.
'
Dim t As Table(Of Clientes) = dc.Clientes

Para recorrer las propiedades de un objeto DataContext, ejecutarías algo
parecido a lo siguiente:

Imports System.Reflection

' Referenciamos el objeto DataContext.
'
Dim dc As New DataClasses1DataContext

' Obtengo el Type de la instancia actual de la clase
'
Dim ty As Type = dc.GetType

' Obtengo las propiedades públicas del objeto
'
Dim properties() As PropertyInfo = ty.GetProperties

' Recorremos la colección de propiedades públicas.
'
For Each p As PropertyInfo In properties

If p.PropertyType.Name.Contains("`"c) Then
MessageBox.Show(p.Name, p.PropertyType.Name)
End If

Next

Como solamente deseas obtener el nombre de las propiedades que referencian
un objeto «Table(Of T)», vas a tener suerte, porque en este caso, la
propiedad «PropertyType» devuelve como nombre la palabra «Table`1», de ahí
que haya utilizado el método «Contains» para averiguar si el nombre del
objeto System.Type tiene un acento invertido. :-)

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida