Cela me dérange vraiment. Voici un extrait de mon modèle:Problème de date-heure hors de portée utilisant LINQtoSQL
* SQL Server *
Event
-----
Id (int, PK) NOT NULL
Title (varchar(100)) NULL
LastModified (datetime) NULL
EventDates
----------
Id (int, PK) NOT NULL
StartDate (datetime) NULL
EndDate (datetime) NULL
* C# *
Event
-----
public int Id
public string Title
public DateTime LastModified
EventDates
----------
public int Id
public DateTime StartDate
public Datetime EndDate
Le champ LastModified
est dans la base de données depuis sa création. Je gardais sa valeur lorsque j'enregistre un événement, mais je veux afficher dans une table, alors j'ai changé mon de la valeur de retour du référentiel d'événements GetEvents
:
return (from e in GetDbEvents()
select new Event
{
// Miscellaneous fields..
LastModified = e.LastModified.GetValueOrDefault() // Shiny new code
});
Quand je l'appelle maintenant, je reçois hurlé:
The conversion of a char data type to a datetime data type
resulted in an out-of-range datetime value.
Si je bande sur le code ci-dessus à cela, il ne permet pas encore et je reçois la même erreur, si je tente d'énumérer sur le résultat:
var test = (from e in _db.Events
select e.LastModified.GetValueOrDefault());
en test, je a fait la même déclaration pour ma table EventDates
(encore une fois, avec 2 colonnes datetime):
var test4 = (from ed in _db.EventDates
select new EventDate
{
StartDate = ed.StartDate.GetValueOrDefault(),
EndDate = ed.EndDate.GetValueOrDefault()
});
Cela fonctionne très bien, bien sûr. Pas d'erreur quand j'énumère, toutes les valeurs sont correctes.
Je dois souligner que certaines LastModified
valeurs dans le tableau Events
sont NULL
tandis que toutes les valeurs de EventDates
sont remplis avec des données.
Ai-je manqué quelque chose de basique? Merci d'avance!
EDIT Ma principale question est pourquoi Events
me donner hors de portée des questions et EventDates
ne fonctionne pas, même si le modèle est assez similaire?
Quels sont les minimum et maximum (c.-à-d.MIN() et MAX()) valeurs des dates dans chacune des colonnes de table que vous examinez? –