Comment définir un champ sur DBNull dans Entity Framework
-
03-07-2019 - |
Question
Comment définissez-vous un champ sur DBNull dans Entity Framework? Les champs sont fortement typés, vous ne pouvez donc pas le définir égal à DBNull.Value et je n'ai trouvé aucune méthode pour définir un champ sur DBNull. Cela semble être une chose nécessaire à faire, mais après de nombreuses recherches sur Google, je n'ai rien trouvé à ce sujet.
J'essaie de définir un champ date / heure dans Entity Framework à l'aide de vb.net. Cela nécessite que j'écrive
myEntity.mydate = Nothing
Cela ne définit pas le champ sur null, mais plutôt la valeur de date par défaut, qui n'est pas une valeur valide dans SQL Server.
La solution
Si une colonne est nullable dans la base de données, la classe de résultat aura également une propriété nullable.
Par exemple, si une table Order
contient une colonne Datetime
nullable appelée CreatedDate
, la classe Order
résultante will ressemble à ceci:
public partial class Order: EntityObject
{
...
private DateTime? _createdDate;
...
}
Si le _ createdDate
n'a aucune valeur lorsque vous appelez ObjectContext.SaveChanges ()
, un System.DBNull
sera automatiquement envoyé à la base de données. dans le cadre de la commande insert ou update.
J'espère que cela aide Alex
Autres conseils
Définissez la valeur du champ sur null
. Entity Framework traduira cela en System.DBNull
.
Je n'ai jamais utilisé entity-framework, mais pouvez-vous transformer une variable en un type nullable?
quelque chose comme
dim entityVar as nullable(of date)
alors vous pouvez faire le = rien et il ne restera rien.
mais comme je l'ai dit, je n'ai jamais utilisé d'entité-cadre
en cherchant sur google, j'ai constaté que un rapport de bogue sur Microsoft Connect