powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ и Удаление, но без [Key]
8 сообщений из 8, страница 1 из 1
LINQ и Удаление, но без [Key]
    #39103417
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модель:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    [Table("DirDiscountTab")]
    public class DirDiscountTab
    {
        [Display(Name = "Скидка")]
        [Required]
        public int DirDiscountID { get; set; }
        [ForeignKey("DirDiscountID")]
        public virtual Dir.DirDiscount dirDiscount { get; set; }

        [Required]
        public decimal SumBegin { get; set; }
        [Required]
        public decimal Discount { get; set; }
    }


Подскажите, как можно удалить записи, при условии без поля [Key]?
Пример:
Код: sql
1.
2.
DELETE FROM DirDiscountTab 
WHERE DirDiscountID=@DirDiscountID



А то так не работает:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
                //Получаем коллекцию записей
                var query =
                    (
                    from dirDiscountTabs in db.DirDiscountTabs
                    where dirDiscountTabs.DirDiscountID == dirDiscount.DirDiscountID
                    select dirDiscountTabs
                    ).ToList();

                //Удаляем каждую запись отдельно
                foreach (var dirDiscountTab in query)
                {
                    try
                    {
                        db.Entry(dirDiscountTab).State = EntityState.Deleted;
                        db.SaveChanges();
                    }
                    catch (Exception ex) { ... }
                }



Заранее спасибо!
...
Рейтинг: 0 / 0
LINQ и Удаление, но без [Key]
    #39103431
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Та EF даже не сохраняет без поля [Key] ...
...
Рейтинг: 0 / 0
LINQ и Удаление, но без [Key]
    #39103485
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
potkinТа EF даже не сохраняет без поля [Key] ...

И выводы?
...
Рейтинг: 0 / 0
LINQ и Удаление, но без [Key]
    #39103577
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
potkinТа EF даже не сохраняет без поля [Key] ...

а как ему записи идентифицировать без ключа?
...
Рейтинг: 0 / 0
LINQ и Удаление, но без [Key]
    #39103711
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
potkinПодскажите, как можно удалить записи, при условии без поля [Key]?
Пример:
Код: sql
1.
2.
DELETE FROM DirDiscountTab 
WHERE DirDiscountID=@DirDiscountID

EF так не умеет. Нужно зачитать удаляемые записи в кэш, пометить их удалёнными, потом вызвать SaveChanges. Если удаляемых записей много, то EF для их удаления лучше не использовать.
...
Рейтинг: 0 / 0
LINQ и Удаление, но без [Key]
    #39103870
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К Если удаляемых записей много, то EF для их удаления лучше не использовать.

Лучше использовать EF Extensions
...
Рейтинг: 0 / 0
LINQ и Удаление, но без [Key]
    #39106112
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил поле [Кей]
...
Рейтинг: 0 / 0
LINQ и Удаление, но без [Key]
    #39111863
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так.
Код: c#
1.
2.
3.
context.Database.ExecuteSqlCommand( 
        "DELETE FROM DirDiscountTab 
WHERE DirDiscountID=@DirDiscountID", DirDiscountID); 
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ и Удаление, но без [Key]
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]