Le cast spécifié à partir d'un matérialisé 'Système.DateTime' type 'System.Chaîne de type n'est pas valide
Je suis en utilisant Entity Framework 5 et lorsque le comte() est appelée à partir de ci-dessous
string sqlStr = @"SELECT top 20 ID,
CAST(DOI as DATETIME) as IDate
FROM DTable";
var results = db.Database.SqlQuery<SRVM>(sqlStr);
//get total count
var total = results.Count();
J'obtiens l'erreur:
Le cast spécifié à partir d'un matérialisé 'Système.DateTime' type de la
'Système.Chaîne de type n'est pas valide.
Des idées pourquoi?
- post les lignes ci-dessus, il
- Vous êtes absent pertinentes des parties de code. Nous ne pouvons pas en déduire ce
results
type est. Post de sa déclaration il est très pertinent... - vous avez quelques colonne venant de db qui est de type DateTime, mais ici, cette propriété est une chaîne
Vous devez vous connecter pour publier un commentaire.
On dirait que vous êtes en plaçant un DateTime dans une variable de Chaîne dans une requête linq. Je suis également deviner que le premier de la requête est "le résultat.Count()" qui est en fait de l'exécution de la requête et d'essayer de remplir n'importe quel objet que vous remplissez. Si vous modifiez le Count() appel à une méthode qui vous permettra d'exécuter l'appel (ToList(), First (), ...), vous verrez le même message d'erreur.
Lorsque vous projetez un DateTime dans une chaîne de match assurer que vous appelez ToString() avec un format de fournisseur pour faire la conversion.
Lorsque vous utilisez
Database.SqlQuery<T>
l'exception targetsite est sur :T GetValue(System.Data.Common.DbDataReader, DateTime)
examen de votre classe d'entité sur ce cas, T est SRVM vous trouverez IDate champ de type
string
qui doit être de typeDatetime
.À