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

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

04.10.2022, 23:45. Показов 2655. Ответов 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
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,765
Записей в блоге: 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
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,765
Записей в блоге: 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
14806 / 9579 / 1368
Регистрация: 21.01.2016
Сообщений: 36,085
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
14806 / 9579 / 1368
Регистрация: 21.01.2016
Сообщений: 36,085
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
14806 / 9579 / 1368
Регистрация: 21.01.2016
Сообщений: 36,085
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
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru