Erreur lors de la conversion du type de données varchar datetime lors de l'exécution de SQL brut, mais pas quand on l'appelle par LINQ to SQL

Un client est d'avoir une erreur lors de l'exécution de mon code. Ils m'ont envoyé le SQL de profilder.

Quand je l'ai coller dans SQL Server Management Studio, il échoue avec: Erreur de conversion de type de données varchar datetime

Toutefois, il ne faut pas en panne quand je le lance sur mon local de la boîte de dev ou de l'autre des clients de la production sever.

Pour tester, j'ai créé une application simple avec un L2S datacontext contenant une entité qui ressemble à quelque chose comme:

public class UserAccount 
{
    public int Id { get; set; }
    public string Username { get; set; }
    public DateTime? LastActivity { get; set; }
}

L'insertion d'un enregistrement, puis le mettre à jour:

var account = db.UserAccounts.Single(a => a.Username == "Mojo");
account.LastActivity = DateTime.Now;
db.SubmitChanges();

Les enregistrements est mise à jour dans la base de données. Mais quand je prends le T-SQL Profiler:

exec sp_executesql N'UPDATE [UserAccount] SET [LastActivity] = @p2 WHERE ([Id] = @p0) AND ([Username] = @p1) AND ([LastActivity] IS NULL)',N'@p0 int,@p1 nvarchar(4),@p2 datetime',@p0=1,@p1=N'Mojo',@p2='2009-11-10 14:04:41.7470000' 

et de l'exécuter dans SQL Server Management Studio-je obtenir: Erreur de conversion de type de données varchar datetime

Ce qui me manque?

Quel est le type de champ pour LastActivity dans la DB?
LastActivity DateTime null

OriginalL'auteur Pauly | 2009-11-10