Я пытаюсь сделать это, но там написано, что я не могу использовать 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; }
}