Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 13.08.2013
Сообщений: 28
1

Ошибка каскадных таблиц (Specify ON DELETE NO ACTION or ON UPDATE NO ACTION)

10.06.2015, 11:05. Просмотров 1260. Ответов 1
Метки нет (Все метки)


Здравствуйте.

Возникла проблема с созданием таблицы. Ошибка в Package Manager Console
Introducing FOREIGN KEY constraint 'FK_dbo.Orders_dbo.Ticket_TicketId' on table 'Orders' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint. See previous errors.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
   
    [System.ComponentModel.DataAnnotations.Schema.Table("Orders")]
    public class OrderEntity : IDbEntity
    {
 
        public int Id { get; set; }
 
        public int TicketId { get; set; }
 
        [ForeignKey("TicketId")]
        public TicketSetupEntity TicketSetup { get; set; }
 
        public int PerformerId { get; set; }
 
        [ForeignKey("PerformerId")]
        public UserEntity Performer { get; set; }
 
        public string Comment { get; set; }
 
    }
 
 public class TicketSetupEntity : AbstractTicketEntity
    {
 
        public int FacilityConsumerId { get; set; }
 
        [ForeignKey("FacilityConsumerId")]
        public FacilityConsumerEntity FacilityConsumer { get; set; }
 
 
    }
 
    [System.ComponentModel.DataAnnotations.Schema.Table("Ticket")]
    public abstract class AbstractTicketEntity : IDbEntity
    {
        public int Id { get; set; }
 
        public int TypeId { get; set; }
 
        [ForeignKey("TypeId")]
        public TicketTypeEntity Type { get; set; }
 
        public string Description { get; set; }
 
        public DateTime Created { get; set; }
 
        public int CreatorId { get; set; }
 
 
        [ForeignKey("CreatorId")]
        public UserEntity Creator { get; set; }
 
        public int? AssignedId { get; set; }
 
        [ForeignKey("AssignedId")]
        public UserEntity Assigned { get; set; }
 
    }
Почитав различные ссылке предположила что это происходит из за того что в классе OrderEntity есть свойство Performer а также TicketSetup и в свою очередь TicketSetup содержит тоже ссылку на ту же таблицу что и Performer. В рекомендациях было написано составить какие то ограничения каскадных таблиц.

добавила:
C#
1
2
3
 
modelBuilder.Entity<OrderEntity>().HasRequired(oo => oo.TicketSetup).WithMany().WillCascadeOnDelete(false);
modelBuilder.Entity<OrderEntity>().HasRequired(oo => oo.Performer).WithMany().WillCascadeOnDelete(false);
Но когда я так делаю вместо того чтобы просто ссылаться на имеющиеся записи в таблицах Tickets и Users создаются дублирующие записи. Помогите пожалуйста разобраться в ситуации.

Добавлено через 22 часа 23 минуты
Неужели никто не сталкивался с такой проблемой(((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2015, 11:05
Ответы с готовыми решениями:

Куда я должен вставить ON DELETE NO ACTION or ON UPDATE NO ACTION?
Сделал миграцию, бд не хочет обновляться, что-то требует, Что мне нужно сделать что-бы она не...

Как расширить ссылку из Controller/Action/Id до Contr/Action/Category/Id ?
Здравствуйте, Дорогие форумчане! Давно не брался за ASP, поэтому задаю несколько глупый и для...

Сделать INSERT/DELETE/UPDATE таблиц
Необходимо сделать INSERT/DELETE/UPDATE таблиц, но у меня не получается :( есть datagrid без...

Условие вне action-а -- это ошибка?
Возникает ошибка если екшен обгорнуть в условие--вот так. if(isset($_COOKIE)==11) { ...

1
0 / 0 / 0
Регистрация: 13.08.2013
Сообщений: 28
18.06.2015, 15:13  [ТС] 2
Как оказалось проблема дублирующихся записей уже не связана с каскадами в таблице. как было подсказано в другом форуме. решение нашлось благодаря настройке автомаппера. полный вариант ответа на другом форуме


вопрос закрыт.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2015, 15:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Фрагмент ошибка cannot perform this action after onSaveInstanceState
Здравствуйте, в приложении для android использую фрагмент, вызываю его так:...

Ошибка 404 при запросе action
Установил yii2, через composer. Создал контроллер, екшн . Обращаюсь к нему...

Ошибка при использовании action bar sherlock
Всем привет, недавно достался проект с action bar sherlock, нужно добавить поддержку твиттера, я...

Как организовать журналирование insert / update / delete для нескольких таблиц?
Используется MySQL - 5.7 - х64 Имеется несколько таблиц с приблизительно следующим кол. и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.