2010-02-12 6 views
1

Récemment, j'ai commencé à porter l'application ADO.net sur Entity Framework. Il y a des colonnes optionnelles dans ma table. Avec le ADO.net, je vérifie juste l'existence de la colonne et obtiens la valeur si elle est là.Colonnes facultatives dans Entity Framework

if (MyTable.Columns.Contains("PerformPreCheck") && 
    DBNull.Value != MyRow[MyTable.Columns["PerformPreCheck"]]) 
{ 
     m_bPerformPreCheck = (bool)MyRow[MyTable.Columns["PerformPreCheck"]]; 
} 

Comment puis-je obtenir la même chose avec Entity Framework?

Merci, Suresh

Répondre

0

présumant votre entité est appelée Foo et la colonne nullable est appelée PerformPreCheck:

using(var context = new MyEntities()) 
{ 
    var f = context.Foos.First(); // or context.Foos.Where(foo => foo.Id == someId).First(), etc.... 
    m_bPerformPreCheck = f.PerformPreCheck.GetValueOrDefault(); 
} 
+0

Salut Craig, Merci pour votre réponse. Dans mon modèle d'entité, j'ai la fonction "PerformPreCheck", mais dans ma base de données client, ils n'ont pas cette colonne car elle est optionnelle. Il échoue à "var f = context.Foos.First()". Mais le code ADO.net que j'ai donné ci-dessus fonctionne parfaitement. J'essaie de trouver l'équivalent. Merci, Suresh – jaklucky

+0

Vous ne pouvez pas avoir un schéma de base de données qui change et un modèle d'entité qui ne l'est pas. Vous devez synchroniser votre schéma de base de données et votre modèle d'entité. –

+0

Merci pour la réponse. Cela pourrait très bien se produire sur le terrain. Pour moi, c'est comme une limitation. Je pourrais le faire dans ADO.net, pas de problème. Je regrette maintenant de passer à Entity Framework. – jaklucky