ASP.NET Core API 6.0 — невозможно обновить базу данных при использовании отложенной загрузки ядра EF с прокси-серверами.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 ASP.NET Core API 6.0 — невозможно обновить базу данных при использовании отложенной загрузки ядра EF с прокси-серверами.

Сообщение Anonymous »

Я использую отложенную загрузку EF Core 6.0
Я добавил пакет Microsoft.EntityFrameworkCore.Proxies и добавил UseLazyLoadingProxies() в свой DbContext

Код: Выделить всё

 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseLazyLoadingProxies().UseSqlServer("Server = SRV84; Database = BASE_DEMO1; User Id = sa; Password = Ab@123456");

}
}
Это мой API:

Код: Выделить всё

 [HttpPost]
public async Task CreateUser(UserCreateDto oUserCreate) //UserCreateDto oUserCreate
{
var oUser = await _authorizationService.GetUserByUserName(oUserCreate.Username);
if (oUser.Id > 0)
{
return BadRequest("Username already exists");
}
oUserCreate.Status = (int)StatusUser.Deactive;
oUserCreate.CreatedDate = DateTime.Now;
oUserCreate.ModifiedDate = DateTime.Now;
oUserCreate.Status = (int)StatusUser.Deactive;
var idUser = await _authorizationService.CreateUser(oUserCreate);
if (idUser == 0)
{
await AddLogAsync(UserIdentity.FullName + ": create " + oUserCreate.FullName, OBJECT.USERS, (int)ActionLogs.Add, (int)StatusLogs.Error);
return BadRequest("There was an error!");
}
await AddLogAsync(UserIdentity.FullName + ": create " + oUserCreate.FullName, OBJECT.USERS, (int)ActionLogs.Add, (int)StatusLogs.Success);
#region Create new Userinfo
UserInfoCreateDto userInfo = new UserInfoCreateDto();
userInfo.Address = oUserCreate.Address;
userInfo.Email = oUserCreate.Email;
userInfo.Avatar = oUserCreate.Avatar;
userInfo.Phone = oUserCreate.PhoneNumber;
userInfo.Sex = oUserCreate.Sex;
userInfo.UserId = idUser;
await BaseService.CreateAsync(userInfo);
#endregion
#region Create new Group
if (oUserCreate.GroupIds.Count > 0)
{
foreach (var item in oUserCreate.GroupIds)
{
if (item > 0)
{
await BaseService.CreateAsync(new GroupUserCreateDto() { GroupId = item, UserId = idUser });
}
}
}
#endregion
return Ok();
}

Код: Выделить всё

 [HttpGet]
public async Task GetUsers([FromQuery] UserGridPagingDto pagingModel)
{
var predicates = pagingModel.GetPredicates();
var result = await BaseService.FilterPagedAsync(pagingModel, predicates.ToArray());
if (pagingModel.GroupId > 0)
{
if (result.Data.Count > 0)
{
for (int i = 0; i < result.Data.Count; i++)
{
result.Data[i].IsCheck = result.Data[i].LstGroupIds.Contains(pagingModel.GroupId);
}
}
}
return Ok(result);
}
Когда я публикую «Пользователя» из API, моя база данных не может обновиться, но я могу получить данные.
Я пытаюсь удалить свою базу данных, комментарий мою строку подключения и перезагрузите компьютер. Но я все равно смог получить данные, которые добавил ранее. Вот что я вижу в терминале.

Код: Выделить всё

16' with options: using lazy loading proxies
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (52ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT COUNT(*)
FROM [Users] AS [u]
WHERE [u].[DeletedUserId] IS NULL
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (52ms) [Parameters=[@__p_0='?' (DbType = Int32)], CommandType='Text', CommandTimeout='30']
SELECT [t].[Id], [t].[UserName], [t].[FullName], [t].[c], [t].[Status], [t].[CreatedDate], [t].[DeletedUserId], [t].[c0], [g].[GroupId], [g].[Id]
FROM (
SELECT TOP(@__p_0) [u].[Id], [u].[UserName], [u].[FullName], (
SELECT TOP(1) [u0].[Email]
FROM [UserDetail] AS [u0]
WHERE [u].[Id] = [u0].[UserId]) AS [c], [u].[Status], [u].[CreatedDate], [u].[DeletedUserId], (
SELECT TOP(1) [u1].[Phone]
FROM [UserDetail] AS [u1]
WHERE [u].[Id] = [u1].[UserId]) AS [c0]
FROM [Users] AS [u]
WHERE [u].[DeletedUserId] IS NULL
ORDER BY [u].[Id] DESC
) AS [t]
LEFT JOIN [GroupUser] AS [g] ON [t].[Id] = [g].[UserId]
ORDER BY [t].[Id] DESC
Что мне теперь делать

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как обновить/добавить большой объем данных в базу данных Oracle из ASP.Net Core
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Как обновить/добавить большой объем данных в базу данных Oracle из ASP.NET Core
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Как обновить/добавить большой объем данных в базу данных Oracle из ASP.NET Core
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

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