DbSet.FirstOrDefault ()?

Я пытаюсь сделать это, но там написано, что я не могу использовать FirstOrDefault,

public static int GetId(this Context db, Type type, string name)
{
    return db.Set(type).FirstOrDefault(x => x.Name == name).Id;
}

Ошибка: « System.Data.Entity.DbSet» не содержит определения для «FirstOrDefault» и метода расширения «FirstOrDefault», принимающего первый аргумент типа «System.Data.Entity.DbSet». 'может быть найдено (вам не хватает директивы using или ссылки на сборку?)

Затем я попробовал этот метод Cast , но он дал ошибку Невозможно создать DbSet из неуниверсального DbSet для объектов типа WindowStyle (кстати, WindowStyle наследуется от DomainEntity ниже),

var set = db.Set(type).Cast<DomainEntity>();
return set.FirstOrDefault(x => x.Name == name).Id;

Вот класс,

public class DomainEntity
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
}
7
задан Benjamin 21 November 2011 в 22:30
поделиться