@JuniorNoobie
Сижу в поддержке, пишу мелкие проекты

Как удалить элемент из DbContext Entity Framework?

Добрый день!
Подскажите как исправить следующую ситуацию. Есть BookContext db (DbContext), который уже соединен с одноименной таблицей в БД Oracle. Новые записи из кода добавляются прекрасно, т.е. строчка
db.Books.Add(new Book { Name = "First step", Author = "shavadre", Price = 120 })

работает прекрасно. Проблемы начинаются когда я пытаюсь удалить запись из контекста и, соответственно, из БД.
Book delBook = db.Books.Where(x => x.Id == 2).FirstOrDefault();
            db.Books.Remove(delBook);
            db.SaveChanges();

Выскакивает ошибка:
The specified value is not an instance of type 'Edm.Decimal'
Parameter name: value

Код класса и контекста:
[Table("BOOKS",Schema="VRSHAIKHISLAMOV")]
    public class Book
    {
        [Column("ID", TypeName="NUMBER")]
        [Required]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }
        
        [Column("NAME", TypeName="VARCHAR2")]
        public string Name { get; set; }

        [Column("AUTHOR", TypeName = "VARCHAR2")]
        public string Author { get; set; }

        [Column("PRICE", TypeName = "NUMBER")]
        public int Price { get; set; }
    }

public class BookContext : DbContext
    {
        public DbSet<Book> Books { get; set; }
    }
  • Вопрос задан
  • 844 просмотра
Решения вопроса 1
@dmitryKovalskiy
программист средней руки
Попробуйте 2M вместо 2
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
NYMEZIDE
@NYMEZIDE
резюме - ivanfilatov.ru
Book delBook = db.Books.Where(x => x.Id == 2).FirstOrDefault();


Find почему не используете для ключа Id?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы