Similaire à la Meilleure façon de vérifier si l'objet existe dans le Cadre de l'Entité?
Je suis à la recherche d'une méthode générique permettant de vérifier la présence d'une entité dans un DbSet
. Quelque chose de ce genre, qui ne fonctionne pas:
private DbContext DbContext { get; set; }
private DbSet<T> DbSet { get; set; }
public Boolean Exists(T entity) {
return ((from item in this.DbSet
where item == entity
select item).Count() > 0);
}
La ligne where item == entity
travaille dans LINQ to SQL, mais apparemment pas avec LINQ to entities. Puisque les entités peuvent avoir différentes touches je ne peux pas les avoir tous hériter d'une commune abstrait avec une clé à des fins de comparaison.
J'ai pu faire cela, mais je suis inquiet au sujet de la performance d'attraper les exceptions, comme un processus de vérification de Ce qui ne fonctionne pas depuis aussi longtemps que l'entité est détachée de l' OriginalValues
de la propriété ne peuvent pas être obtenues:
public Boolean Exists(T entity) {
try {
var current = this.DbContext.Entry(entity).OriginalValues;
// Won't reach this line if the entity isn't in the database yet
return true;
}
catch (Exception ex) {
return false;
}
}