[Entity Framework] Error “AssociationSets must be consistently mapped for all operations”. Mapear asociaciones en Store Procedure de Delete

Con un proyecto donde estoy probando Entity Framework, para ir mas alla de lo simple a lo que estamos acostumbrados y tambien para poder testear esta tecnologia, llego el momento del mapeo a mis procedimientos almacenados.

Aclaracion: Todavía tengo el SP1 Beta del VS2008… (porque según el ADO.NET Team esta issue se debera solucionar en futuras versiones)

Problema

Estaba probando el Mapeo a Procedimientos Almacenados de una entidad de mi DataModel

image

La logica diria… en este ejemplo sencillo que tendria que funcionar

image

Pero dos errores afloraron

Error:
Error 2048: The EntitySet ‘Pacientes’ includes function mappings for AssociationSet ‘FK_Pacientes_EstadoCivil’, but none exists in element ‘DeleteFunction’ for type ‘{Proyecto}.{Entidad}’. AssociationSets must be consistently mapped for all operations.
   

image

 

El problema:
     AssociationSets must be consistently mapped for all operations.   

Es decir el conjunto de asociaciones debe ser “CONSISTENTE” en todas las operaciones (Insert/Update/Delete).

 

Solucion

Tenemos que mantener estas relaciones hasta en el delete.

image

O sea que en mi querida prueba simple el PA

ALTER PROCEDURE Pacientes_Eliminar
      @PacienteId int      
AS
BEGIN    
    DELETE [Pacientes]          
    WHERE PacienteId = @PacienteId
END


Quedo de esta manera

ALTER PROCEDURE Pacientes_Eliminar
      @PacienteId int,
      @TipoDocumentoId  tinyint,
      @EstadoCivilId  tinyint  
AS
BEGIN    
    DELETE [Pacientes]          
    WHERE PacienteId = @PacienteId
END

Con el unico objetivo de MAPEAR

Para eso actualizamos el modelo… un Refresh (casi desde cualquier menu contextual de nuestro modelo)

image  image

luego…

image

Mapeando…

image

 

NOTA 1:

(from ADO.NET Team)…We hope to provide a solution for this issue in future versions of the Entity Framework, but for now, this is what needs to be done for associations whose target multiplicity, with respect to the type being mapped, is 1 or 0..1. In other words, the “reference” end of the association needs to be mapped to the keys of the target type.

 

NOTA 2:

Me canse de configurar todo esto… quisiera algo que se configure “automaticamente” 🙂

 

 

Enlaces

[Free e-book] Writing Secure Code (MS Press) solo por unos días

Comparto lo que recibi en el Newsletter de Microsoft Press… un codigo para descagar el e-book (pero ya lo utilice asi que no funciona mas, si quieres descargar el libro deberias suscribirte al newsletter)

Para descargar mi codigo de acceso “era” (tiempo pasado!): 7234-N4E8-4995 (Pero ya no puede utilizar para todos…) Asi que los invito a suscrbirse el que lo quiere descargar a Newsletter de Microsoft Press

image

Instrucciones de la descarga:

    1. Ir a http://www.microsoft.com/learning/access
    2. Ingresar el codigo de acceso. (case sensitive.)
    3. Ingresar con tu cuenta Windows Live ID
    4. Luego desde la pagina de “Gracias…” hacer click para ir a “My learning”
    5. Alli en la Seccion E-Reference tedras acceso a algo asi

      image
      Lo cual descargar cada capitulo por separado no me agrado mucho! 🙁

 

Para incribirse al newsletter click aqui

TFS: Cambiar el sitio y puerto de administración de SharePoint. SharepointAdminUri

Estabamos creando un nuevo proyecto en el TFS 2008 y nos aparece el siguiente mensaje:


TF30177: Team Project Creation Failed
Error: Unable to connect to Windows SharePoint Services at {servidor}

image

 

Luego de leer el log, el error se produce aqui…

 

 image

Lo que sigue del log…

Event Description: TF30207: Initialization for plugin "Microsoft.ProjectCreationWizard.Portal" failed
Exception Type: Microsoft.TeamFoundation.Client.PcwException
Exception Message: Unable to connect to the Windows SharePoint Services at {nombreServidor}
Exception Details: The Project Creation Wizard was not able to connect to the Windows SharePoint Services at {nombreServidor}. The reason for the failed connection cannot be determined at this time. Because the connection failed, the wizard was not able to complete creating the Windows SharePoint Services site.

Stack Trace:
   en Microsoft.VisualStudio.TeamFoundation.WssSiteCreator.CheckPermissions(ProjectCreationContext ctxt)
   en Microsoft.VisualStudio.TeamFoundation.WssSiteCreator.Initialize(ProjectCreationContext context)
   en Microsoft.VisualStudio.TeamFoundation.EngineStarter.InitializePlugins(MsfTemplate template, PcwPluginCollection pluginCollection)
–   Inner Exception   —
Exception Type: System.Net.WebException
Exception Message: No es posible conectar con el servidor remoto
WebException: Status : ConnectFailure
Stack Trace:
   en System.Net.HttpWebRequest.GetRequestStream()
   en System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   en Microsoft.TeamFoundation.Proxy.Portal.Admin.GetLanguages()
   en Microsoft.VisualStudio.TeamFoundation.WssSiteCreator.CheckPermissions(ProjectCreationContext ctxt)
— end Inner Exception —
–   Inner Exception   —
Exception Type: System.Net.Sockets.SocketException
Exception Message: No se puede establecer una conexión ya que el equipo de destino denegó expresamente dicha conexión 192.168.2.2:17012
Stack Trace:
   en System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
   en System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
   en System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
— end Inner Exception —
— end Exception entry —

 

Entonces que paso? Si todo esta funcionando bien? (como siempre je!)

No voy a delatar a quien “reinstalo el SharePoint” por un problema que tenian, y no aviso. Y al volver a instalar el puerto cambio.
Aqui tenemos dos alternativas (que encontre) o cambiar el puerto del SharePoint o cambiar la URL del SharePoint asociado a nuestro TFS

Yo quise cambiar el TFS.

 

Para ver la configuración hacemos uso de la herramienta TFSAdminUtil, se encuentra por aqui
c:Archivos de programaMicrosoft Visual Studio 2008 Team Foundation ServerTools

Pasos a seguir

  1. Ver configuracion actual del TFS (comando ConfigureConnections)

         tfsadminutil configureconnections /view

    Resultado:
    Aqui podremos ver la seccion que nos interesa: SharepointAdminUri (Especifica el URI del sitio administrativo de SharePoint)
    image

  2. Cambiar la configuración de SharepointAdminUri
    Luego tendremos que cambiar el sitio “viejo/antiguo” por el nuevo en mi caso cambia el puerto

         tfsadminutil configureconnections /SharepointAdminUri:http://{server}:{puerto}

    Resultado:
    Modificamos la dirección de administracion del SharePoint
    image

  3. Verificar nuevamente la configuración
         tfsadminutil configureconnections /view

 

 

 

 

 

Enlaces

Office Labs: Search Command for Word 2007. ¿Donde esta lo que necesito? Buscar comandos/acciones.

No todo es programación 😉 Me acaban de preguntar donde se encuentra el comando “contar palabras” en el Word 2007. De primera no conocia en que solapa/tab se encontraba pero lo encontre rapidamente gracias a una herramienta que tengo instalada que les pueda ser muy util: “Search Command for Word 2007”.
¿Donde esta un comando? Antes se encontraba mejor todo :(  Son algunas frases que escucho en los nuevos usuarios (lease mi hermana, mi novia..mm todas mujeres??, y en algunos amigos 😉 …)

Estabamos acostumbrados a la interfaz de Word 2003, asi que el cambio en los usuarios “hogareños” puede ser “un abismo”, para tratar de solventarlo podemos guiarnos con:

Que con la interfaz de usuario de Word 2003 nos va informando donde esta actualmente lo que necesitamos.

Pero tenemos una ayuda… desde Office Labs

El Proyecto: Search Command, que nos ayuda a encontrar comandos/acciones, opciones, wizard/ayudantes y galerias en Microsoft Office 2007 (también en Excel y PowerPoint)
Por ahora solo en ingles (pero seguro si esto es bueno en futuras versiones lo veamos dentro del programa)

 image

Luego de la instalacion lo tenemos a la mano (cerca… muy cerca!)

 

image

 

 

Ejemplo:  Word Count (“Contar Palabras”)

Tomemos un ejemplo basico, busquemos: Count
Para contar palabras…vemos que la ubicación:
image 
(Tab Revisar | Revision | Contar Palabras) 
image
Directamente lo podremos utilizar allli al comando/acción haciendo click sobre el mismo, o ver su ubicacion (location) en el Tooltip

Si vamos a la guia interactiva (que antes mencione) nos da la referencia… pero siempre es mejor buscar y no estar “aprendiendo todo de una vez” 🙂

image

 

 

 

Ejemplo 2 :  Show Table Gridlines (Ver lineas de division/Ocultar lineas de division)

 image
Como esta en  ingles… para el usuario “hogareño” no creo que sea facil recordar como seria el comando en ingles… (esperemos a su version .es)
Para el que no recuerda:
image

 

 

Video (rapeado jeje): How to use Search Commands (from Office Labs)

(ver en ventana nueva)

 

 

Enlaces

Windows Vista Performance and Tuning (.pdf from Technet)

Como soy actualmente un usuario de Windows Vista, y algunos de mis amigos de la vida estan utilizandolo (donde tenemos un ensalada de: psicologo, profesor de educacion fisica, diseñadores graficos, licenciado en educacion, tecnico en publicidad… pero todos tiene su parte informatica y estan con sus computadoras con Vista) … y la pregunta eterna… de como OPTIMIZAR.
Hoy di con un documento para este tipo de tareas por aqui:

Lo bueno es que no es “muy tecnico” 🙂

El PDF esta en ingles.

NOTA: Toma como base Windows Vista SP1

 

Windows TechCenter Springboard, para los curiosos

http://www.microsoft.com/springboard

Que ya lo habia comentado:

 

image

La mitad me dira… y el ingles? (por ahi hay todavia personas asi)  calma… solo hay que cambiar el idioma en la barra superior
image
http://technet.microsoft.com/es-es/windows/bb905048.aspx?wt.svl=leftnav

image

image