Я создал две хранимые процедуры в SQL Server Management Studio.
Поле добавления первой процедуры в таблице ProjcetsToUsers (для ассоциаций "многие ко многим")
CREATE PROCEDURE sp_addUserToProject
@userId int,
@projectId int
AS
BEGIN
SET NOCOUNT ON;
IF NOT EXISTS(SELECT * FROM ProjectsToUsers WHERE idProject = @projectId and idUser = @userId)
INSERT INTO ProjectsToUsers (idProject, idUser) VALUES (@projectId, @userId)
END
GO
Поле удаления второй процедуры изэта таблица:
CREATE PROCEDURE sp_deleteUserToProject
@userId int,
@projectId int
AS
BEGIN
SET NOCOUNT ON;
DELETE FROM ProjectsToUsers WHERE idProject = @projectId and idUser = @userId
END
GO
Первая функция импорта обновления обновляет всю дату (в базе данных и объектах в сеансе):
Entities.AddUserToProject(projectId: project.id, userId: user.id);
Вторая функция импорта импортирует только поле обновления в базе данных = (
bugTrackerEntities.DeleteUserFromProject(projectId: project.id, userId: user.id);
Я попытался обновить обновления:
bugTrackerEntities.Refresh(RefreshMode.StoreWins, project);
bugTrackerEntities.Refresh(RefreshMode.StoreWins, user);
bugTrackerEntities.SaveChanges(SaveOptions.AcceptAllChangesAfterSave);
project.Users.Load();
user.Projects.Load();
это не помогло = (
Я могу удалить пользователя из проекта, а затем добавить еще одного,и новый добавляется, но удаляются остатки. Что касается базы данных, обе эти функции работают правильно.
Почему это происходит?