Error SQL del marco de la entidad de C#

Tengo un EmailHistoryModel:

public class EmailHistory
{
    public Guid Id { get; set; }
    public string CompanyId { get; set; }
    public Guid? UserId { get; set; }
    public DateTime CreatedDate { get; set; }
    public DateTime SentDate { get; set; }
    public DateTime UpdateDate { get; set; }
    public string OutCome { get; set; }
    public DateTime EmailDeliveredDate { get; set; }
    public DateTime EmailOpened { get; set; }
    public string EmailAddress { get; set; }
    public string HtmlEmail { get; set; }
    public string IntegrationDocumentId { get; set; }
    public Rules RulesId { get; set; }
    public int TransactionId { get; set; }
}

Sigo recibiendo un error al intentar acceder a mi modelo. En este momento estoy tratando de ejecutar lo siguiente:

var emailHistoryTotal = !emailHistory.Any() ? 1 : emailHistory.Count();

Esto sigue dándome el error: "EntityFramework.dll pero no se manejó en el código de usuario

Información adicional: la conversión falló al convertir una cadena de caracteres a un identificador único"

No estoy seguro de qué ha cambiado, ya que todo funcionaba bien...

Si ejecuto lo siguiente en SQL, ¿devuelve bien?: SELECT * FROM [dbo].[EmailHistory]

En SQL, las únicas columnas establecidas en Identificador único son Id, RulesId_Id y UserId.

El historial de correo electrónico proviene de mi repositorio (consulte a continuación el método)

public IQueryable<EmailHistory> GetEmailHistoryByUser(string userId)
    {           
        return _autoSendContext.EmailHistory.AsQueryable();
    }

el _autoSendContext es una variable global para interactuar con la base de datos

¡Cualquier ayuda u orientación sería genial!

preguntado Oct 07 '14, 14:10

Select * From X no es lo mismo que tu !emailHistory.Any() ... ¿Qué estás tratando de lograr? -

¿Dónde estás poblando realmente el modelo? -

Qué es exactamente emailHistory? -

con solo sumar 1 y 1 emailHistoryTotal debe ser un valor numérico mayor a 1. -

Debe publicar el código real que llama al marco de la entidad. -

1 Respuestas

Ok... no tenía nada que ver con la tabla de historial de correo electrónico. El error se debió a las migraciones de datos, la migración automática intentaba cambiar un campo en la base de datos de un NVARCHAR a un identificador único.

Esta fue la declaración que el sistema estaba tratando de ejecutar: ALTER TABLE [dbo]. [Transacciones] ALTER COLUMN [CompanyId] [uniqueidentifier] NULL

Respondido 07 Oct 14, 19:10

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.