Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923

Не могу получить данные из бд

04.10.2022, 23:45. Показов 2570. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь получить данные из DbContext, несколько дней как в ступоре.

C#
1
2
3
4
5
        public async Task RemoveAsync(CustomerId id)
        {
            var customer = await this._context.Customers.SingleAsync(x => x.Id == id.Value); // ошибка
            this._context.Customers.Remove(customer);
        }
Получаю ошибку.
Но при этом добавить в бд могу без проблем.

Ошибка ни о чём:
Building Test Projects
========== Starting test run ==========
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.4.3+1b45f5407b (64-bit .NET 6.0.8)
[xUnit.net 00:00:00.63] Starting: DevPace.IntegrationTests
[xUnit.net 00:00:01.55] DevPace.IntegrationTests.ExampleIntegrat ionTests.Remove_Customer_Test [FAIL]
[xUnit.net 00:00:01.55] System.TypeInitializationException : The type initializer for 'Microsoft.EntityFrameworkCore.Query.Que ryableMethods' threw an exception.
[xUnit.net 00:00:01.55] ---- System.InvalidOperationException : Sequence contains more than one matching element
[xUnit.net 00:00:01.55] Stack Trace:
[xUnit.net 00:00:01.55] at Microsoft.EntityFrameworkCore.Query.Quer yableMethods.get_SingleWithPredicate()
[xUnit.net 00:00:01.55] at Microsoft.EntityFrameworkCore.EntityFram eworkQueryableExtensions.SingleAsync[TSource](IQueryable`1 source, Expression`1 predicate, CancellationToken cancellationToken)
[xUnit.net 00:00:01.55] L:\devpace\src\DevPace.Infrastructure\Do main\Customers\CustomerRepository.cs(31, 0): at DevPace.Infrastructure.Domain.Customers. CustomerRepository.RemoveAsync(CustomerI d id)
[xUnit.net 00:00:01.55] L:\devpace\src\DevPace.Application\DevPa ce.Application\Cusomers\RemoveCustomer\R emoveCustomerCommandHandler.cs(24,0): at DevPace.Application.Orders.RemoveCustome r.RemoveCustomerCommandHandler.Handle(Re moveCustomerCommand request, CancellationToken cancellationToken)
[xUnit.net 00:00:01.55] at MediatR.Pipeline.RequestPreProcessorBeha vior`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
[xUnit.net 00:00:01.55] at MediatR.Pipeline.RequestPostProcessorBeh avior`2.Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate`1 next)
[xUnit.net 00:00:01.55] L:\devpace\src\DevPace.Infrastructure\Pr ocessing\CommandsExecutor.cs(24,0): at DevPace.Infrastructure.Processing.Comman dsExecutor.Execute[TResult](ICommand`1 command)
[xUnit.net 00:00:01.55] L:\devpace\tests\DevPace.IntegrationTest s\DevPaceInfrastructureTests.cs(134,0): at DevPace.IntegrationTests.ExampleIntegrat ionTests.Remove_Customer_Test()
[xUnit.net 00:00:01.55] --- End of stack trace from previous location ---
[xUnit.net 00:00:01.55] ----- Inner Stack Trace -----
[xUnit.net 00:00:01.55] at System.Linq.ThrowHelper.ThrowMoreThanOne MatchException()
[xUnit.net 00:00:01.55] at System.Linq.Enumerable.TryGetSingle[TSource](IEnumerable`1 source, Func`2 predicate, Boolean& found)
[xUnit.net 00:00:01.55] at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source, Func`2 predicate)
[xUnit.net 00:00:01.55] at Microsoft.EntityFrameworkCore.Query.Quer yableMethods..cctor()
[xUnit.net 00:00:01.55] Finished: DevPace.IntegrationTests
========== Test run finished: 1 Tests (0 Passed, 1 Failed, 0 Skipped) run in 1.6 sec ==========
Репозиторий:
https://github.com/limeniye/devpace

Создание бд:

Кликните здесь для просмотра всего текста
SQL
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
CREATE SCHEMA devPace AUTHORIZATION dbo
GO
 
CREATE TABLE devPace.Users
(
    [Id] UNIQUEIDENTIFIER NOT NULL,
    [Login] VARCHAR(255) NOT NULL,
    [PassHash] VARCHAR(255) NOT NULL,
    [Email] VARCHAR(255) NOT NULL
)
GO
 
INSERT INTO devPace.Users VALUES ('8A812F08-0647-443B-8FA3-A98C3B1423A7', 'mykyta', 'qwerty12345', 'limpopo@gmail.com');
GO
 
CREATE TABLE devPace.Customers
(
    [Id] UNIQUEIDENTIFIER NOT NULL,
    [Email] VARCHAR(255) NOT NULL,
    [Name] VARCHAR(200) NULL,
    [CompanyName] VARCHAR(200) NULL,
    [Phone] VARCHAR(200) NULL
)
GO
 
INSERT INTO devPace.Customers VALUES ('8A812F08-0647-443B-8FA3-A98C3B9493A7', 'limpopo@gmail.com', 'Elton John', 'DevPace', '380680034562');
INSERT INTO devPace.Customers VALUES ('42441057-b6c1-4852-9ea7-1f382f99e4eb', 'tralivali@gmail.com', 'Sara Tomko', 'DevPace', '38012345124');
GO
 
CREATE SCHEMA app AUTHORIZATION dbo
GO
 
CREATE TABLE app.OutboxMessages
(
    [Id] UNIQUEIDENTIFIER NOT NULL,
    [OccurredOn] DATETIME2 NOT NULL,
    [TYPE] VARCHAR(255) NOT NULL,
    [DATA] VARCHAR(MAX) NOT NULL,
    [ProcessedDate] DATETIME2 NULL,
    CONSTRAINT [PK_app_OutboxMessages_Id] PRIMARY KEY ([Id] ASC)
)
GO
 
CREATE TABLE app.InternalCommands
(
    [Id] UNIQUEIDENTIFIER NOT NULL,
    [EnqueueDate] DATETIME2 NOT NULL,
    [TYPE] VARCHAR(255) NOT NULL,
    [DATA] VARCHAR(MAX) NOT NULL,
    [ProcessedDate] DATETIME2 NULL,
    CONSTRAINT [PK_app_InternalCommands_Id] PRIMARY KEY ([Id] ASC)
)
GO
 
CREATE VIEW devPace.v_Customers
AS
SELECT
    [Customer].[Id],
    [Customer].[Email],
    [Customer].[Name],
    [Customer].[CompanyName],
    [Customer].[Phone]
FROM devPace.[Customers] AS [Customer]
GO
 
CREATE VIEW devPace.v_Users
AS
SELECT
    [USER].[Id],
    [USER].[Login],
    [USER].[PassHash],
    [USER].[Email]
FROM devPace.[Users] AS [USER]
GO
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.10.2022, 23:45
Ответы с готовыми решениями:

Не могу получить данные из БД
Создаю подобие интернет-магазина. Сейчас пытаюсь сделать простые фильтры, я отправляю фильтры, а получить хочу уже объекты базы чтобы...

Не могу получить данные из GET
Добрый день. То ли глаза замылились, то ли лыжи не едут - не могу понять почему нет определяются данные при отправке Getом...

не могу получить данные api
Есть ссылка http://10.80.10.42:88/api/test если ввести её в браузер я получаю массив { "Account":...

28
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
05.10.2022, 15:15  [ТС]
Студворк — интернет-сервис помощи студентам
Andrey-MSK, добавил builder.HasKey(b => b.Id); builder.Property(b => b.Id).ValueGeneratedNever(); вместо builder.Property("Id").HasColumnName("Id");

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    internal sealed class CustomerEntityTypeConfiguration : IEntityTypeConfiguration<Customer>
    {
        public void Configure(EntityTypeBuilder<Customer> builder)
        {
            builder.ToTable("Customers", SchemaNames.DevPace);
 
            builder.HasKey(b => b.Id);
            builder.Property(b => b.Id).ValueGeneratedNever();
 
            builder.Property("Email").HasColumnName("Email");
            builder.Property("Name").HasColumnName("Name");
            builder.Property("CompanyName").HasColumnName("CompanyName");
            builder.Property("Phone").HasColumnName("Phone");
        }
    }
Не помогло (
0
 Аватар для Andrey-MSK
3371 / 2257 / 388
Регистрация: 14.08.2018
Сообщений: 7,647
Записей в блоге: 4
05.10.2022, 15:28
limeniye, А чем не устраивает стандартное оформление ключа?
T-SQL
1
2
3
4
5
6
7
8
9
10
CREATE TABLE devPace.Customers
(
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Email] VARCHAR(255) NOT NULL,
    [Name] VARCHAR(200) NULL,
    [CompanyName] VARCHAR(200) NULL,
    [Phone] VARCHAR(200) NULL,
    CONSTRAINT [PK_Customers_Id] PRIMARY KEY CLUSTERED ([Id] ASC)
)
GO
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
05.10.2022, 15:40  [ТС]
Andrey-MSK, в первый раз это делаю. Для меня "не стандартное", ибо сравнить не с чем.

Добавлено через 1 минуту
Andrey-MSK, я попробую как Вы предложили, но не знаю как это на суть темы влияет.
0
 Аватар для Andrey-MSK
3371 / 2257 / 388
Регистрация: 14.08.2018
Сообщений: 7,647
Записей в блоге: 4
05.10.2022, 16:08
Цитата Сообщение от limeniye Посмотреть сообщение
C#
1
builder.Property(b => b.Id).ValueGeneratedNever();
Только вот это надо будет убрать, если правильно понял эту запись, так как IDENTITY(1,1) сам генерирует уникальные значения ключа в таблице.

Добавлено через 9 минут
Я вот так настраивал таблицы для EF, с помощью атрибутов
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
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
 
namespace MEFCFDAL.Model
{
    [Table("tblDraw", Schema = "dbo")]
    public class Draw
    {
        [Column("ID_Draw", TypeName = "int"), Key]
        public int DrawID { get; set; }
 
        [Column("ID_GenPlan", TypeName = "int")]
        public int GPlanID { get; set; }
 
        [Column("DrawNum", TypeName = "nvarchar"), StringLength(50)]
        public string DNumber { get; set; }
 
        [Column("DrawName", TypeName = "nvarchar"), StringLength(255)]
        public string DName { get; set; }
 
        [Column("Stage", TypeName = "nvarchar"), StringLength(50)]
        public string DStage { get; set; }
 
        [Column("StageTEP", TypeName = "int"), DefaultValue(1)]
        public int DStageTEP { get; set; }
 
        [Column("Works", TypeName = "nvarchar"), StringLength(50)]
        public string DWorks { get; set; }
 
        [ForeignKey("GPlanID")]
        public GPlan GPlan { get; set; }
 
        public ICollection<DrawSystem> DrawSystems { get; set; }
 
        public override string ToString()
        {
            return $"{DNumber}";
        }
    }
}
0
Эксперт .NET
 Аватар для Usaga
14367 / 9468 / 1360
Регистрация: 21.01.2016
Сообщений: 35,725
06.10.2022, 07:49
limeniye, вы схему базы руками создаёте или с помощью миграций? Если руками, то EF'у не надо отдельно указывать, что Id - это ключ. Он сам это понимает по названию и типу свойства.
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
06.10.2022, 12:45  [ТС]
Usaga, руками.
0
Эксперт .NET
 Аватар для Usaga
14367 / 9468 / 1360
Регистрация: 21.01.2016
Сообщений: 35,725
06.10.2022, 15:52
limeniye, ну так и указывайте в схеме таблицы IDENTITY и PRIMARY KEY как выше Andrey-MSK показл.
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
06.10.2022, 18:04  [ТС]
Usaga, это, конечно, хорошо. На этих выходных постараюсь так и сделать. Эта реализация мне пригодиться в будущем, так как я хочу отправлять не весь список, а в диапазоне. Это называется, по-моему, GetPage(from, to);

Но особо на вопрос это влиять не должно. По идее всё же правильно делаю, реализаций никаких не усложняю, у меня банальный GetCustomerById(Guid id); метод; Id передаю правильный; ничего лишнего вроде не делаю, так как это вообще xUnit-текст; базу данных использую отдельную, для тестов.
И всё равно не работает.
Уж не знаю идти ли мне искать место где поплакать....
0
Эксперт .NET
 Аватар для Usaga
14367 / 9468 / 1360
Регистрация: 21.01.2016
Сообщений: 35,725
07.10.2022, 01:42
Цитата Сообщение от limeniye Посмотреть сообщение
По идее всё же правильно делаю
В каком месте это правильно?

Цитата Сообщение от limeniye Посмотреть сообщение
Уж не знаю идти ли мне искать место где поплакать....
... или открыть учебник по SQL. Последнее явно продуктивнее было бы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.10.2022, 01:42

Не могу получить связанные данные из БД
Не могу получить связанные данные из базы PositionName, DepartmentName, OfficeName, EmployerName. Посоветуйте что можно сделать? Есть...

не могу получить данные с сервера
Есть запрос на сервер для получения данных, но отрабатывает ошибка async function getData() { const response = await...

Не могу получить данные из файла
У меня есть класс с авиакомпаниями, где должна записываться информация рейсов. Так же в классе есть функция для записи этой информации из...

Не могу получить данные из таблицы
Не могу получить данные из таблицы из под обычного пользователя

Не могу получить данные из textbox
Здравствуйте!Начал изучать ASP, и как всегда появились вопросы.Вот пробую решить задачку: есть несколько элементов textBox.Ввожу в них...


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

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru