ارور Duplicate Id ورب پست برای ادد کردن Product جلسه 43

سوال شده توسط: Amirmhdi Gol

تاریخ ثبت: ۱۴۰۱/۰۱/۱۸

بازدید: 446

پاسخ: 11

تگ: Asp.net Core


سلام اقای اشرافی این ارور رو موقع ادد کردن product میده ولی داخل دیتابیس ها ادد میشه ولی این اروره هستش همیشه داخل عکس هم کاملش هست

MongoDB.Driver.MongoWriteException: A write operation resulted in an error. WriteError: { Category : "DuplicateKey", Code : 11000, Message : "E11000 duplicate key error collection: CleanArch.ProductReadModel index: _id_ dup key: { _id: 11 }" }.
پاسخ ها
user

محمد اشرافی

سلام ، همون طور که از error مشخصه توی دیتابیس mongo دوتا id با مقدار 11 هست و نمی تونه ادش کنه ( مطمعا اید که توی mongo هم ادد میشه ؟ )

یه بار دیتابیس هارو خالی کنید و توی Event Hnadler های لایه Query بریک پوینت بزارید مرحله به مرحله برید جلو شاید یه جا اشتباه شده باشه

user

Amirmhdi Gol

بله داخل مونگو هم ادد شد الان همرو پاک کردم برک پوینت گزاشتم مشکلش اینه که یبار درست اجرا میشه ولی یبار دیگه ام اجرا میشه که ارور میده دلیل دوبار اجرا شدنشو نمیدونم جاایم نبوده که دوبار پابلیشش کنم 

user

محمد اشرافی

CancelationToken رو پاس بدین به متد publish و توی Action هم یه CancalationToken دریافت کنید و بدینش به متد Send

user

محمد اشرافی

ولی حتما  چک کن ببینم چرا 2 بار داره اجرا میشه

user

Amirmhdi Gol

h

دریافت فایل ضمیمه
user

Amirmhdi Gol

m

دریافت فایل ضمیمه
user

Amirmhdi Gol

من این دو کار رو انجام دادم ولی باز هم دوبار اجرا شد

 

user

محمد اشرافی

یه عکس ProjectBootstrapper اتون بزارید ( یه جا خوندم میگه مشکل از اینه که 2 بار یک Assembly رو به MediatR معرفی کردین)


 

user

Amirmhdi Gol

بله درست فرمودین درست شد مشکل از این قسمت بود .

فقط میشه یه توضیح بدین که چرا اون دوتارو (داخل عکس) کامنت کردم درست شد ؟ اینجکت کردن edit و getList چه ربطی به دوبار اجرا شدن Create داره؟

و این که چرا edit و getList رو اینجکت نمیکنیم ولی تو API کار میکنه؟

دریافت فایل ضمیمه
user

محمد اشرافی

با هر با اضافه کردن MediatR به سیستم دارین دوباره Handler هارو نمونه سازی میکنید

-----------------

شما دارین Assembly پاس میدین به این متد ، فقط لازم Assembly پروژه Application و پروژه Query رو بهش پاس بدین

این صفحه رو ببینید شاید کمکتون کنه

user

Amirmhdi Gol

بله حتما خیلی ممنون ار راهنمایی خوبتون❤

برای ثبت پاسخ باید خود شوید

محبوب ترین مقالات