Почему EF Core удаляет мою другую сущность при создании новой?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему EF Core удаляет мою другую сущность при создании новой?

Сообщение Anonymous »

У меня есть эта функция: < /p>

public NetworkUser Create(Guid networkId, Guid userProxyId, CreateNetworkUserDto createNetworkUser)
{
var network = networkService.GetDetailsById(networkId);
var userProxy = userProxyService.GetById(userProxyId);
if (network == null) throw new NotFoundHttpException("Network not Found");
if (userProxy == null) throw new NotFoundHttpException("UserProxy not Found");

if (GetByIds(networkId, userProxyId) != null) throw new ConflictHttpException("NetworkUser already exists");

var networkUser = mapper.Map(createNetworkUser);
networkUser.Id = Guid.NewGuid(); // FORCE a fresh id
networkUser.NetworkId = networkId;
networkUser.UserProxyId = userProxyId;

networkUser = repository.Create(networkUser);
return networkUser;
}
< /code>
и консоль выводит следующее: < /p>
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (1ms) [Parameters=[@p0='?' (DbType = Guid), @p1='?' (DbType = Guid), @p2='?' (DbType = DateTime), @p3='?' (DbType = Guid), @p4='?' (DbType = Guid)], CommandType='Text', CommandTimeout='30']
DELETE FROM "NetworkUsers"
WHERE "Id" = @p0;
INSERT INTO "NetworkUsers" ("Id", "CreatedOn", "NetworkId", "UserProxyId")
VALUES (@p1, @p2, @p3, @p4);
< /code>
Я не понимаю, почему другая сущность удаляется. < /p>
Я набросаю сценарий: < /p>
User A and User B, with Network C and Network D
User A joins Network C: Creates a NetworkUser(A, C)
User B joins Network C: Creates a NetworkUser(B, C), but deletes NetworkUser(A, C) (???), but leaves NetworkUser(A, D) and NetworkUser(B, D) alone (They already existed before)
< /code>
Иностранные ключи разные (((A, C) и (A, D)), но они все еще удаляются.
Я пробовал Chatgpt, он не знает. < /p>
Как я могу исправить эту ошибку? происходит, то есть удаление также не происходит.// ...
public NetworkUser Create(NetworkUser networkUser)
{
_context.NetworkUsers.Add(networkUser);
Save();
return networkUser;
}
// ...

public abstract class BaseRepository(DataContext context) : IBaseRepository
{
// I know this is not great, but it is not my problem right now (I think)
public bool Save()
{
var saved = context.SaveChanges();
return saved > 0;
}
}
< /code>
dto: < /p>
public class CreateNetworkUserDto
{
}
< /code>
dataContext: < /p>
// ...
modelBuilder.Entity()
.HasKey(nu => nu.Id);
modelBuilder.Entity()
.HasOne(n => n.Network)
.WithMany(nu => nu.NetworkUsers)
.HasForeignKey(n => n.NetworkId);
modelBuilder.Entity()
.HasOne(u => u.UserProxy)
.WithMany(nu => nu.NetworkUsers)
.HasForeignKey(u => u.UserProxyId);
// ...


Подробнее здесь: https://stackoverflow.com/questions/795 ... -a-new-one
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»