mvc - ¿El mapeo de los procedimientos almacenados es todo o nada en Entity Framework?(Asignación de funciones)
executesqlcommand entity framework stored procedure (2)
Obtuve el error
No se puede encontrar InsertFunctionMapping para EntityType ''xxx'' en el archivo de mapeo.
Lo cual es justo porque es verdad. Pero eso es porque estoy feliz con EF haciendo inserciones para mí. Simplemente quiero anular la función de eliminación.
Pensé que era una de las mejoras con EF4? ¿O es solo que se compilará bien pero aún llorará cuando uses las funciones no asignadas? ¿O es posible, pero me estoy perdiendo algo?
HASTA DONDE SE. Es todo o nada.
Si no asigna las tres operaciones de inserción, actualización o eliminación de un tipo de entidad a procedimientos almacenados, las operaciones no asignadas fallarán si se ejecutan en tiempo de ejecución y se lanza una UpdateException.
Tengo el mismo o similar problema. Solo deseo sobrescribir la función de eliminación, pero no es posible en EF4 sin anular también las funciones de inserción y actualización. En mi caso, necesito hacer esta acción para eliminar:
update table set deleted = 1 where id = @id
Lo resolví de esta manera: antes de llamar al método context.SaveChanges(true)
Ejecuto este código
foreach (ObjectStateEntry entry in context.ObjectStateManager.GetObjectStateEntries(EntityState.Deleted))
{
entry.ChangeState(EntityState.Modified);
entry.Entity.GetType().GetProperty("deleted").SetValue(entry.Entity, true, null);
}
Soy principiante en EF. Ahora solo busco cómo resolver algunos problemas con EF que tengo que resolver antes de comenzar a desarrollar aplicaciones basadas en EF. Pero ahora parece que esta solución debería funcionar. Espero.