Hola gente!
Por lo que vi, sin probar mucho, se puede, ver:
http://weblogs.asp.net/omarzabir/archive/2007/12/08/linq-to-sql-how-to-attach-object-to-a-different-data-context.aspx
Supongo que el truco del detach se puede usar para enviar el objeto a otro
lado....
Ahora, uno puede usar objetos que no sean LinqToSql en un DataContext. Tengo
que investigar las limitaciones, pero eso de tener this.PropertyChanged y
demas, es del codigo generado por el LinqToSql....
No investigue mas que hace LinqToSql, porque al fin y al cabo, uso AjGenesis
para generar lo que necesito del DataContext, de Linq, de NHibernate, de
Hibernate, de Struts, de Spring .NET, de Spring Java, o de lo que
necesite... ;-) ;-)
Me parecieron interesantes algunos enlaces coleccionados por el bueno de
Pablo Constantini:
http://msmvps.com/blogs/lopez/archive/2008/03/12/linq-y-arquitectura-de-capas.aspx
ahi se trata el tema de un solo DataContext...
Angel "Java" Lopez (hoy viene firma semi larga... ;-)
http://www.ajlopez.com/
http://www.twitter.com/ajlopez
http://www.msmvps.com/lopez
http://ajlopez.wordpress.com/
----- Original Message -----
From: "Daniel Laco" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Monday, June 16, 2008 7:30 PM
Subject: [puntonet] DataContext
Hola Leo
Parece mentira que a esta altura de la informática y después de muchos años
de ORMs varios, todavía en MS hagan algunas cosas del paleolítico inferior.
En LinQToSQL no se pueden transferir objetos entre diferentes DataContexts,
solo pueden ser usados en un solo DataContext.
Esto es una restricción de diseño. O sea que si estás pensando en pasar
objetos creados con el LinQToSQL entre capas no se puede. (Alguien en el
equipo de ADO.NET debe estar papando moscas...).
Tampoco es recomentable que uses un solo DataContext en una variable Static
porque no es Thread Safe, con lo cual, si tu aplicación es ASP.NET no hay
mayor problema porque ahí se utiliza Unit of Work, o sea, abris y cerrar
solamente en una pagina (ni se te ocurra mantener eso en una variable de
Session).
En el caso de una aplicación WinForm y si tu ambiente es controlado, podrías
tener un solo DataContext para toda tu aplicación.
Si tu ambiente es otro, jua!! Que alguien te ayude.
Saludos!!
Daniel Laco | Business Development Manager | Microsoft MVP | VEMN S.A.
Pje. Villalonga 821 2° piso - Ituzaingó - Buenos Aires | TE: 54 11.
4624.6012 | Cel: 15.5737.9201
-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Jose
Cardaropoli
Sent: Lunes, 16 de Junio de 2008 01:57 p.m.
To: [email protected]
Subject: [puntonet] DataContext
Creo que ese era el error, investigando un poco, me contaron que debía abrir
un solo datacontex en un lugar que pudieran referenciar todos los proyectos
de la solución.
Me parecía que era mejor no tenerlo todo el tiempo en memoria y abrirlo cada
vez que lo necesitaba luego cerrarlo, como si fuera una conexión a la base
de datos.
Estoy haciendo mis primeros pasos y hay que acomodar la cabeza a la nueva
herramienta.
Gracias
----- Original Message -----
From: "Leonardo Micheloni" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Friday, June 13, 2008 3:39 PM
Subject: [puntonet] DataContext
Hola,
No entiendo bien, por qué usás dos DataContext?
2008/6/12 Jose Cardaropoli <[EMAIL PROTECTED]>:
Hola a todos,
Estoy generando una aplicación con linq to sql, para actualizar mis tablas
genero un DataC ontext pero al mismo solo puedo hacer una attach en el
Namespace donde lo he creado.
En otro lugar de la aplicación cuando quiero crear otro no puedo porqu me
dice que ya tiene un attach, en interner lei que había en alguna versión
un
"desattach".
Yo uso visual studio 2008 y no lo tengo como puedo solucionar este
problema
???
Gracias
JoseC
--
Leonardo Micheloni.
Ayudando a organizar las primeras jornadas ágiles de Latinoamérica
http://agiles2008.org/
Blog Personal
http://leomicheloni.blogspot.com/
http://multithreadingincsharp.blogspot.com/