web-dev-qa-db-fra.com

Entity Framework 4: Sélection d'un enregistrement unique

Je prévois actuellement de basculer mon code «écriture manuelle de requêtes» vers un framework Nice SQL afin de pouvoir laisser les requêtes ou les éléments SQL au framework au lieu d'écrire moi-même les requêtes.

Maintenant, je me demande comment puis-je obtenir un seul enregistrement de ma table dans Entity Framework 4?

J'ai principalement utilisé SQL comme SELECT * FROM {0} WHERE Id = {1}. Cela ne fonctionne pas dans EF4, en ce qui me concerne.

Est-il possible de sélectionner un seul enregistrement basé sur un identifiant dans mon contexte?

Quelque chose comme:

public Address GetAddress(int addressId)
{
    var result = from Context.Addresses where Address.Id = addressId;

    Address adr = result as Address;

    return Address;
}

Je vous remercie!

20
SeToY
var address = Context.Addresses.First(a => a.Id == addressId);
41
Ray

Vous pouvez utiliser les méthodes Single ou First.

La différence entre ces méthodes est que Single attend une seule ligne et lève une exception s'il ne possède pas une seule ligne.

L'utilisation est la même pour les deux

4
duedl0r

(Basé sur VS 2015) Si vous créez un .edmx (Ajouter -> Modèle de données d'entité ADO.NET) .  enter image description here

Suivez les étapes pour créer le ".edmx" et utilisez ce qui suit pour exécuter la procédure stockée. emailAddress est le paramètre que vous transmettez à la procédure stockée g_getLoginStatus. Cela va tirer la première ligne dans LoginStatus et status est une colonne de la base de données:

bool verasity = false;
DBNameEntities db = new DBNameEntities();   // Use name of your DBEntities

var LoginStatus = db.g_getLoginStatus(emailAddress).FirstOrDefault();

if ((LoginStatus != null) && (LoginStatus.status  == 1))
{
      verasity = true;
}
0
Dan B