Modelo EF6 Primera función No se puede importar




 Tengo un primer modelo de base de datos modelo en Entity Framework 6 y he estado tratando de importar una función escalar para usar para la clasificación; sin embargo, mientras EF encuentra la función, no puede importarla por algún motivo. 

 No hay mensajes de error ni nada, la función agregada desde la base de datos simplemente no se muestra en la ventana Agregar función de importación, mientras que aparece en el almacén de la base de datos en el navegador de modelos. 

 [![Importación de funciones](https://i.stack.imgur.com/O7yUd.png)](https://i.stack.imgur.com/O7yUd.png) 

 [![Desplegable vacio](https://i.stack.imgur.com/ohThp.png)](https://i.stack.imgur.com/ohThp.png) 

 [![Navegador de modelos](https://i.stack.imgur.com/DxKFv.png)](https://i.stack.imgur.com/DxKFv.png)
Entonces, después de 30 minutos adicionales de búsqueda sobre las 2 horas iniciales, he encontrado esta respuesta: 

 [Agregar función de importación no está disponible para la función](https://stackoverflow.com/questions/11191254/add-function-import-not-available-for-function) 

 Además de esto: 

 [Entidad marco de la función escalar](https://stackoverflow.com/a/12393291/1974352)
Los ejemplos que otros han dado no funcionarán en Entity Framework hoy, porque no se pueden combinar enumeración de clientes y servidores en las entidades LINQ 2. 

 En su lugar, necesita construir una expresión OR, manualmente. 

 Ejecuto una serie de [consejos](http://blogs.msdn.com/alexj/archive/2009/03/26/index-of-tips.aspx) de [EF](http://blogs.msdn.com/alexj/archive/2009/03/26/index-of-tips.aspx) y [este consejo](http://blogs.msdn.com/alexj/archive/2009/03/26/tip-8-writing-where-in-style-queries-using-linq-to-entities.aspx) te muestra cómo construir una expresión OR. 

 Espero que esto ayude 

 Alex vea este artículo <http://msdn.microsoft.com/en-us/library/bb738695.aspx> y <http://msdn.microsoft.com/en-us/library/bb386870.aspx> muestra acerca de la actualización con EF.   
 Y esta pregunta SO sobre ApplyCurrentValues: [ApplyCurrentValues en EF 4](https://stackoverflow.com/questions/2272325/applycurrentvalues-in-ef-4) para ver cómo trabajar con AppliCurrentValues. Para volver a agregar una tabla a su modelo, primero deberá eliminar la tabla de su modelo. (se puede ver una lista de tablas en el árbol [model.Store] (vea el panel ' **Explorador de modelos** '; puede abrirla desde el menú del botón derecho del mouse). Cuando ejecute 'Actualizar modelo desde la base de datos ...' la tabla aparecerá en la pestaña 'Agregar' en el primer paso del 'Asistente de actualización'. 

 Pasos para completar: 

1. Cierra tu modelo en Visual Studio.
2. Abra su archivo .edmx en un editor de texto.
3. Busque y elimine los elementos de la entidad XML (vea las notas a continuación).
4. Abre tu modelo en Visual Studio.
5. Haga clic en Actualizar modelo de la base de datos.

 Para eliminar todas las referencias a una tabla en su Modelo: 

* En el elemento 'EntityContainer', elimine todos los elementos secundarios 'EntitySet' que tienen el atributo 'Nombre' establecido en el valor [TableNameToReAdd].
* En el elemento 'EntityContainer', elimine todos los elementos secundarios 'AssociationSet' donde exista un elemento 'End' que tengan su atributo 'EntitySet' establecido en el valor [TableNameToReAdd].
* En el elemento 'EntityContainer', elimine todos los elementos secundarios 'EntityType' donde tengan el atributo 'Nombre' establecido en el valor [TableNameToReAdd].
* En el elemento 'EntityContainer', elimine todos los elementos secundarios de 'Asociación' donde exista un elemento 'Fin' que tenga su atributo 'Función' establecido en el valor [TableNameToReAdd]. El equipo de EF, junto con P&P, se encuentra actualmente en el proceso de desarrollar una implementación de referencia de acceso a datos de EF (versión 4) que utiliza ASP.NET MVC como la interfaz. 

 El proyecto estará disponible de forma iterativa en CodePlex aquí: 

 <http://dataguidance.codeplex.com/> 

 Aún no hemos hecho nuestra primera fuente, pero ocurrirá en las próximas semanas. 

 ACTUALIZACIÓN: ahora hemos eliminado el código; tenga en cuenta que debe considerarse de calidad alfa y está sujeto a cambios. Básicamente hay varias cosas que puedes hacer. 

* usando `SqlBulkCopy.WriteToServer` que no funciona muy bien junto con EF, sin embargo, existen varios intentos para crear extensiones
* utilizando un procedimiento almacenado que tomará un registro grande y lo dividirá de acuerdo con alguna lógica
* utilizando parámetros de procedimiento almacenado escritos en la tabla y realice una llamada al procedimiento almacenado (y varias `insert ... select` dentro del procedimiento almacenado)

 En general, prefiero la tercera opción. 

 Marque esta pregunta [Entity Framework Stored Procedure Tabla Valor Parámetro](https://stackoverflow.com/questions/8157345/entity-framework-stored-procedure-table-value-parameter) 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. Si viene de estados Unidos es importación no es una operación intracomunitaria que reflejar en el 303.

Por otra parte las europeas, si no eres Operador intracomunitario te estarán facturando con el IVA de su país y no lo puedes deducir. Y por tanto no los puedes meter en el 303.

Un saludo,

Martín Varela

[Asesoría on-line Fiscaliza](http://www.fiscaliza.es/) Tienes que usar la función BUSCARV para que en función de un valor busques en la primera columna de tu otra tabla, e indicándole el número de columna consigas el dato deseado.

Otra opción es usar las funciones INDICE e COINCIDIR.

En Internet y Youtube hay muchos tutoriales, el propio Excel tiene también ejemplos.

Desafortunadamente con la información que proporcionas no veo como orientarte de manera más específica. Es posible que algún sensor de la caja se haya quedado sin conectra o mal conectado, de tal manera que cuando aceleras no interpreta lo que hace el motor, eb cualquier caso vete a donde te han echo la operación y que verifiquen el trabajo, si antes funcionaba ahora también debe de ir bien. -importar contacto:

aviso y aviso y andie me lee.....e avisado siemrpe que el importar contactos de un msn a otro noe s seguro....la razon:
no importas todos es decir,pierdes muchos por el camino y a otros no les llega las invitaciones o solicitudes de agregar.siempre e dicho y dire,que aunq cueste mucho mas trabajo agregarlos uno a uno es mas seguro y los tendras a todos..y otra manera que siemrpe e dicho es..a traves de email ya que cada eamil puedes mandarseloa 50 contactos a la vez,mandas el email con tu direccion nueva y que ellos te agureguen.. :)