¿por qué c # no lo quiera tipos de atributos genéricos?
esto provoca una excepción en tiempo de compilación: public sealed class validatesattribute : attribute { } [validates] public static class stringvalidation { } me doy cuenta de c # no admite atributos genéricos. sin embargo, después de mucho buscar en google, me parece que no puede encontrar la razón. ¿alguien sabe por qué los tipos genéricos no pueden fundar en attribute ? ¿alguna teoría?
bueno, yo no puedo responder por qué no está disponible, pero me puede confirmar que no es un cli problema. el cli de especificaciones no lo menciona (por lo que puedo ver) y si utiliza il directamente, puede crear un atributo genérico. la parte de la c# 3 especificación de que la prohíbe sección 10.1.4 'de la clase base de la especificación de' no dar ningún tipo de justificación. anotado ecma c# 2 spec no da ninguna información útil, aunque no proporciona un ejemplo de lo que no está permitido. mi copia de la annotated c# 3 spec debería de llegar mañana... voy a ver si eso le da más información. de todos modos, es definitivamente un lenguaje de decisión en lugar de en tiempo de ejecución. edit: respuesta de eric lippert (parafraseado): sin ninguna razón en particular, excepto a evitar la complejidad en el lenguaje y compilador para un caso de uso que no agrega mucho valor.
Permítanme comenzar replanteando la pregunta de una manera más concisa. 


>  Una expresión lambda se puede convertir a la `Expression<T>` donde `T` es un tipo de delegado compatible con la expresión lambda. `Expression<T>` se deriva de `LambdaExpression` . ¿Por qué entonces no podemos convertir una expresión lambda directamente a `LambdaExpression` ? 
> 
> 

 La razón es: porque esta es una de las situaciones raras en C # donde la información de tipo fluye desde el *tipo de objetivo de asignación* al *tipo de cosa que se asigna* . El compilador debe conocer el tipo de delegado al convertir un lambda; **el compilador de C # no deduce el tipo de delegado de la lambda, sino que verifica que la lambda es compatible con el tipo de delegado dado** . 

 Ahora, ¿podríamos haber diseñado e implementado un sistema en el que si la información de tipo no estuviera presente y el objetivo de conversión fuera `LambdaExpression` , se realizaría una estimación razonable? Por supuesto. No había nada que nos detuviera más que nadie que deseara o necesitara esa característica. 

 Pero la respuesta a la pregunta "¿por qué no existe esta característica?" Siempre es lo mismo. **No estamos obligados a dar una razón para no implementar una función** . Nadie solicitó esa característica, nadie la diseñó, la implementó, probó ni la envió a los clientes. Por lo tanto, ninguna característica. 

 Más bien, las características no existentes requieren que un defensor empiece a convertirlas en características existentes. Si esta es una función que desea o necesita, tómela en el foro de github y defienda la función. O implementarlo usted mismo; El compilador es de código abierto. *Nota: la respuesta se proporcionó en un comentario en la pregunta original. Solo le estoy agregando un poco aquí, para hacerlo más visible y claro.* 





 Entity Framework obviamente asigna clases de C # a tablas de bases de datos a través de propiedades que representan las distintas columnas en cada tabla. Ahora, si el tipo de datos de una de estas propiedades no es compatible con el tipo de datos de su columna correspondiente en la base de datos, obtendrá una `System.InvalidCastException` cuando intente recuperar algo de esa tabla, incluso si la propiedad no coincide no está directamente involucrada en la búsqueda 

 En la pregunta, la consulta fue: 


```
User user = context.Users.First(i => i.UserId == id);

```
  No importa que tanto `id` como su propiedad correspondiente `UserId` sean válidas y compatibles entre sí aquí, porque lo que se está buscando es una instancia de toda la clase de `User` . 

 Aparentemente, el tipo de alguna otra propiedad en el `User` es incompatible con el tipo una columna con el mismo nombre en la tabla de `user` en la base de datos, por lo que el intento de mapearlo arroja la excepción anterior. En pocas palabras: LINQ to Entities no conoce la conversión de su tipo de ID a una cadena. 

 ¿Cuál es el tipo de `c.ID` ? ¿Hay alguna razón por la que sea un tipo para ID, pero otro para `ReferenzId` ? Si es posible, conviértalos en el mismo tipo, en cuyo punto ya no tendrá más problemas. No sé si hay otras formas de realizar conversiones en LINQ a Entidades (puede haber), pero la alineación de los tipos sería más clara. 

 Por cierto, esto realmente parece que es una combinación: 


```
var query = from c in db.Customers
            join a in db.Addresses on c.Id equals a.ReferenzId into addresses
            select new { Id = c.Id, Addresses = addresses };

```
  EDITAR: Para responder a su comentario: `ToString` aparece en IntelliSense porque el compilador no tiene una idea real de lo que va a significar su consulta ni de cómo se traducirá. Es perfectamente válido C #, y puede generar un árbol de expresiones válido. Es solo que EF no sabe cómo convertir ese árbol de expresiones en SQL. 

 Puede *intentar* usar `Convert.ToString(c.Id)` lugar de simplemente llamar a `c.Id.ToString()` ... unknown sources simplemente significa que las aplicaciones que no son descargadas desde la tienda de google play. incluso si usted pone sus aplicaciones en la app store de amazon o la otra alternativa tiendas, sus usuarios tendrán que habilitar unknown sources. usted no puede cambiar este comportamiento, excepto tal vez por la modificación de android fuentes, pero estoy seguro de que no quieres. <p>no veo ninguna razón para no convertir wordpress en un rastreador de errores. esencialmente, los tickets serían un tipo de publicación personalizada no jerárquica que tendría varias taxonomías, como prioridad, estado, etc.</p> <p>en realidad, hay una solución más fácil para su problema. cualquier plantilla sensata (incluidas todas las plantillas que vienen con joomla cms) establecerá el atributo <code>lang</code> en el elemento html. esto le permite utilizar el pseudo-selector css <code>:lang()</code>.</p><p>tu ejemplo se vería así:</p><pre><code>li.artist:lang(en):before {content:"artist: "} li.artist:lang(it):before {content:"artista: "} li.artist:lang(de):before {content:"künstler"} </code></pre><p>esto tiene un par de ventajas. para empezar, funcionará independientemente de la plantilla o incluso con soluciones distintas a joomla, ya que todo se hace en el navegador.</p><p>también funcionará bien con partes integradas en otros idiomas, siempre que el atributo <code>lang</code> esté configurado correctamente. por ejemplo:</p><pre><code>&lt;html lang="en"&gt; &lt;head&gt; &lt;style&gt; blockquote:lang(de) { color: red; } blockquote:lang(en) { color: red; } &lt;/style&gt; &lt;/head&gt; &lt;body&gt; &lt;p&gt;a famous german quote is:&lt;/p&gt; &lt;blockquote lang="de"&gt; &lt;p&gt;den wald vor lauter bäumen nicht sehen&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;a famous english quote is:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;listen to many, speak to a few.&lt;/p&gt; &lt;/blockquote&gt; &lt;body&gt; &lt;/html&gt; </code></pre><p>por último, joomla no solo muestra el idioma sino también la configuración regional. por lo tanto, un sitio puede usar en-gb, otro en-us y la plantilla reflejará eso. el uso de <code>:lang(en)</code> coincidirá, pero también puede usar <code>:lang(en-us)</code> para apuntar solo al inglés americano.</p> la tabla que envias en el parámetro

it\_toolbar\_excluding del método set\_table\_for\_first\_display esta excluyendo el botón de variante de visualización.

revisa dicha tabla y comenta dicho codigo, por ejemplo podría ser el siguiente o similar:

clear wa\_exclude.

wa\_exclude = cl\_gui\_alv\_grid=>mc\_fc\_c… Modelo y marca del equipo, y memoria ram, de lo contrario, solo puede decirse, que:

Existen modelos de equipos limitados a un tipo de memoria y frecuencia, de usar una mayor no es compatible. El autor de este artículo está algo equivocado: en .NET 4.5, la propiedad [AsynchronousProcessing](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.asynchronousprocessing.aspx) se ignora porque ya no es necesaria. Puede comenzar a [llamar a los métodos Async](http://msdn.microsoft.com/en-us/library/hh211418.aspx) de SqlClient sin cadenas de conexión especiales. 

 Si las operaciones se ejecutarán de forma asíncrona, depende del proveedor de la base de datos. Por ejemplo, la implementación predeterminada de [DbCommand.ExecuteDbDataReaderAsync en](http://msdn.microsoft.com/en-us/library/system.data.common.dbcommand.executedbdatareaderasync.aspx) realidad se ejecuta de forma síncrona y bloquea el hilo de llamada. SqlCommand anula este método y se ejecuta de forma asíncrona. 

 Desafortunadamente, NpgsqlCommand no anula este método, por lo que solo le queda la ejecución síncrona. I. Hola Antonio, en mi caso utilizo Gmail a nivel básico pero sólo puedo dejar algunas consultas sobre el mismo problema, como estas dos por ejemplo.

<https://support.google.com/mail/forum/AAAA3hWma_IPya78dwgY7k/?hl=fa> 





![](//blob.todoexpertos.com/uploads/md/83e2ecd1aea3fc34bac0437633f82cc1.jpg)





Hasta que le conteste un experto, si lo desea puede revisar estos tutoriales, tambien sobre CSV y Gmail, siento no conocer el problema, ojalá haya suerte.

<https://www.geeknetic.es/Noticia/11610/Como-abrir-correctamente-un-archivo-CSV-en-Excel.html> 

<https://www.youtube.com/watch?v=hohwVEbutAE>

<https://www.youtube.com/watch?v=_ZX4FBUicRo>