2010-04-24 8 views
4

Je suis mappage d'une table Utilisateurs très simple, et j'ai une colonne nommée 'LastLoginDate' qui est définie comme nulle dans le serveur sql.Fluent NHibernate SqlDateTime exception de débordement

Ma cartographie ressemble à ceci:

public Users { 
    Id(x => x.UserId); 
    Map(x => x.UserName); 
    ... 
    ... 
    Map(x => x.LastLoginDate).Nullable(); 
} 

Mais chaque fois que j'essaie de sauver cette entité programatically, je reçois toujours l'exception de débordement SqlDateTime. Si j'essaie d'entrer une instruction sql manuelle avec 'null' dans cette colonne cela fonctionne. Si je commente juste cette propriété, cela fonctionnera aussi bien.

Quel peut être le problème ???

Merci d'avance!

Répondre

12

Votre entité devrait ressembler à ceci:

public class User 
{ 
    public virtual DateTime? LastLoginDate {get;set;} 
    // etc 
} 

Ensuite, votre carte devrait fonctionner correctement.

modifier: Le ? après DateTime spécifie qu'il est Nullable et est un format court pour Nullable<DateTime>. Si ce n'est pas la cause de votre erreur, vous pouvez vérifier que Fluently.Configure spécifie la version correcte de SqlServer.

+0

WOW, je me sens tellement stupide maintenant! ... Parfois, il est si difficile de voir que vous avez oublié quelque chose de si trivial et petit :) Merci! – gillyb

+0

Pas de problème, je le fais tout le temps. Parfois, vous avez juste besoin d'une seconde paire d'yeux. –

+0

J'ai exactement le même problème, mais rendre DateTime nullable ne fonctionne tout simplement pas pour moi. Je ne sais pas ce qui pourrait être faux. – Jonathan