У меня есть довольно простая связь «многие ко многим», установленная в моей БД, из которой мне удалось создать
Где мне нужно иметь возможность создавать отношения между пользователями и заказами (назначать пользователей заказам).
Вроде бы все хорошо, но когда я пытаюсь позвонить
db.Orders.Add(order);
// Set all attached users to unchanged
db.ChangeTracker.Entries<AspNetUser>().ToList()
.ForEach(t => t.State = System.Data.Entity.EntityState.Unchanged);
try
{
db.SaveChanges();
}
Я получаю эту досадную ошибку
«Произошла ошибка при сохранении сущностей, которые не раскрывают свойства внешнего ключа для своих отношений. Свойство EntityEntries вернет значение null, поскольку одиночная сущность не может быть идентифицирована как источник исключения. Обработка исключений во время сохранения может быть упрощена путем предоставления внешних ключевые свойства в ваших типах сущностей. Подробнее см. InnerException».
С innerException
"Недопустимое имя объекта" dbo.OrderAspNetUsers".
Я создал OrderAspNetUsers
с помощью
CREATE TABLE [dbo].[OrdersAspNetUsers] (
[AspNetUserId] nvarchar(128) NOT NULL FOREIGN KEY references [dbo].[AspNetUsers],
[OrderId] INT NOT NULL FOREIGN KEY references [dbo].[Orders],
primary key (AspNetUserId, OrderId)
)
Я заметил, что странная ошибка выше ссылается на недопустимое имя объекта OrderAspNetUsers
, но таблица в моей БД определенно называется OrdersAspNetUsers
.
Это какая-то странная проблема с множественным числом?
Любая помощь или совет очень ценятся, я действительно понятия не имею, что здесь делать.
"Violation of PRIMARY KEY constraint 'PK_dbo.AspNetUsers'. Cannot insert duplicate key in object 'dbo.AspNetUsers'. The duplicate key value is (3197712e-0c39-42ee-a596-6dc390898eb8).\r\nThe statement has been terminated."
при вызовеSaveChanges()
- похоже, он пытается добавить пользователей как новые записи, но они уже существуют в БД. - person Bassie   schedule 23.11.2017Invalid column name 'AspNetUser_Id'.
, хотя это не имя моего столбца FK (он должен искатьAspNetUserId
) - person Bassie   schedule 23.11.2017