Herramientas de usuario

Herramientas del sitio


fw:othersnet:dlinq

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
fw:othersnet:dlinq [2009/07/16 10:15]
alfred
fw:othersnet:dlinq [2020/05/09 09:25] (actual)
Línea 4: Línea 4:
 ===== El modelo de datos ===== ===== El modelo de datos =====
 El modelo de base de datos se muestra de forma visual en Visual Studio 2008 a partir de un archivo .dbml, puede ser editado mediante la Toolbox o arrastrando los elementos desde el administrador de servidores. \\ \\  El modelo de base de datos se muestra de forma visual en Visual Studio 2008 a partir de un archivo .dbml, puede ser editado mediante la Toolbox o arrastrando los elementos desde el administrador de servidores. \\ \\ 
 +
  
  
Línea 42: Línea 43:
 db.SubmitChanges() db.SubmitChanges()
 </​code>​ </​code>​
-<​del>''​db.Products.Add (prod);''</​del>​ <- Esto es una versión de lo que se podía hacer anteriormente.+<​del>''​db.Products.Add (prod);''</​del>​ <- Esto se podía hacer en anteriores versiones.
  
 === Deletes === === Deletes ===
Línea 328: Línea 329:
 Lo malo es que no funcionará la edición. Esto es debido a que estamos haciendo una montaje personalizado en el método Selecting, y el LINQDataSource no tiene forma de saber cómo actualizar la entidad. Si queremos añadir soporte para la edición podríamos crear un control ObjectDataSource (al que le agregaríamos un método ''​Update''​ personalizado para contorlarlos),​ o hacer que el usuario navegue a una nueva página para hacer la actualización - y mostrar un ''​DetailsView''​ o ''​FormView''​ enlazado a la entidad Producto para la edición (y no intentar hacerlo en el grid). Lo malo es que no funcionará la edición. Esto es debido a que estamos haciendo una montaje personalizado en el método Selecting, y el LINQDataSource no tiene forma de saber cómo actualizar la entidad. Si queremos añadir soporte para la edición podríamos crear un control ObjectDataSource (al que le agregaríamos un método ''​Update''​ personalizado para contorlarlos),​ o hacer que el usuario navegue a una nueva página para hacer la actualización - y mostrar un ''​DetailsView''​ o ''​FormView''​ enlazado a la entidad Producto para la edición (y no intentar hacerlo en el grid).
  
-===== Notas ===== 
  
 +
 +
 +
 +===== Notas =====
 +  * Cuando estás creando un fichero .dbml a partir de unas tablas sin claves primarias definidas, si quieres que se generen listas de las clases agregadas tendrás que indicar tú las claves primarias a mano.
 +  * No es aconsejable poner directamente el código de las clases parciales en el archivo derivado del .dbml, más vale ponerlo en archivos a parte.
 +  * Cuando queremos que el ''​DataContext''​ se conecte en tiempo de ejecución a otra cadena de conexión no es aconsejable editar el fichero ''​.designer.cs''​ (donde se genera el código) ya que este cambiará al editar el .dbml. Lo mejor es agregar una clase parcial y escribir el constructor por defecto, entonces este ya no se generará y en los otros controles se utilizará el creado. También sería correcto cambiar la propiedad ''​ApplicationSettings''​ de la conexión del dbml poniendola a false.
 +<code csharp>
 +partial class databaseDataContext
 +{
 +  public databaseDataContext()
 +    : base(codegest.Configuration.getConnectionString().ConnectionString,​ mappingSource)
 +    {
 +    }
 +}
 +</​code>​
 +  * Podemos cambiar el namespace de donde se generará el DataContext a partir de la propiedad ''​Context namespace''​ del .dbml y el namespace de donde se generarán las clases de las tablas generadas con la propiedad ''​Entity Namespace''​.
 +  * Al trabajar con SQL Servers "​antiguos",​ al actualizar texto este se intenta comparar con el que había anteriormente y acaba por lanzar una excepción debido a que no lo permiten. La solución es indicar ''​UpdateCheck = UpdateCheck.Never''​.
fw/othersnet/dlinq.1247739331.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)