Problème avec une requête Linq et le format de date

J'ai une application console C# écrit à l'aide de Visual Studio 2008.

Mon système de culture est en-GB. J'ai une requête Linq qui ressemble à ceci:

var myDate = "19-May-2010";

var cus = from x in _dataContext.testTable
     where x.CreateDate == Convert.ToDateTime(myDate)
     select x;

L'résultant de la requête SQL génère et l'erreur, car il renvoie la date du "19/05/2010" il interprète comme une date incorrecte. Pour une raison quelconque, même si mon système de culture est défini à en-GB, on dirait qu'il essaie de intrepret comme un fr-fr date.

Des idées comment je contourner ce problème?

Edit: Merci pour les commentaires à propos de la magie des cordes et du var de l'abus, mais ce n'est pas mon problème. Mon problème est que dans la conversion de Linq to SQL les dates sont interprétées comme NOUS le format des dates (19/05/2010 est interprété comme: dix-neuf mois, jour 5 et l'année 2010) ce qui entraîne le message d'erreur suivant:

System.Data.SqlClient.SqlException: The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value

La clause where de la requête SQL ressemble:

WHERE ([t0].[CreateDate] = '19/05/2010 00:00:00') 

Veuillez noter que la même requête Linq fonctionne parfaitement dans LinqPad.

J'ai essayé de la clause where suivante:

where x.CreateDate == DateTime.Today

et obtenez toujours l'erreur.

Informations Supplémentaires:

De Requête de SQL Server Visualizer:

SELECT [t0].[field1], [t0].[field2], [t0].[field3] AS [field4], [t0].[field5]
FROM [dbo].[table] AS [t0]
WHERE ([t0].[CreateDateTime] = '19/05/2010 00:00:00') 

Original query:
SELECT [t0].[field1], [t0].[field2], [t0].[field3] AS [field4], [t0].[field5]
FROM [dbo].[table] AS [t0]
WHERE ([t0].[CreateDateTime] = @p0) 
-------------------------------
@p0 [DateTime]: 19/05/2010 00:00:00

LINQPad:

-- Region Parameters
DECLARE @p0 DateTime SET @p0 = '2010-05-19 00:00:00.000'
-- EndRegion
SELECT [t0].[field1], [t0].[field2], [t0].[field3] AS [field4], [t0].[field5]
FROM [table] AS [t0]
WHERE ([t0].[CreateDateTime] = @p0)

Ci-dessus, je remarque que LinqPad présente la date dans un format différent de VS.

Grâce.

Alan T

InformationsquelleAutor Alan T | 2010-06-16