【ASP.NET Core】让 EF Core 生成更“合理”的 UPDATE 语句 – 东邪独孤

【ASP.NET Core】让 EF Core 生成更“合理”的 UPDATE 语句 – 东邪独孤


.NET プレイヤーは皆、EF Core がエンティティのステータスを追跡することによって SQL 更新ステートメントを自動的に生成することを知っていると思います。ただし、Web はステートレスです。何か問い合わせた後、フロントデスクに返却されます。次に、ユーザーはデータを更新したいと考えており、POST は変更されたデータです。

より愚かな方法は、最初に主キーに基づいてデータをクエリし、次にクライアントによって POST されたデータを割り当てることです。これにより、古い値と新しい値を比較でき、EF Core は正確な SET 句も生成できます。この方法は愚かですが簡単です。これには欠点があり、更新する前にもう 1 つのクエリを実行する必要があります。

この記事では、このエンティティを使用して説明します。

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; } = default!;
    public string? Major { get; set; }
}
public class DemoDbContext : DbContext
{
    public DemoDbContext(DbContextOptions opt)
        : base(opt)
    {

    }

    public DbSet Students { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity(ent =>
        {
            ent.ToTable("tb_students");
            // 初始数据
            ent.HasData(new Student { Id = 1, Name = "吴小车", Major = "挖矿" },
                new Student { Id = 2, Name = "李肺", Major = "攻城掠地" },
                new Student { Id = 3, Name = "赵逗逗", Major = "打磨芯片" },
                new Student { Id = 4, Name = "范统", Major = "悲观经济学" },
                new Student { Id = 5, Name = "贾仁亿", Major = "社会猪圈学" });
        });
    }
}

Major 属性は、学生が選択した専攻を示します。

このとき、公式ドキュメントで紹介されている ExecuteUpdate メソッドを思い浮かべると思います。クエリは必要なく、UPDATE ステートメントを直接送信できます。

_ = await dbcontext.Students.ExecuteUpdateAsync(setter =>
{
    setter.SetProperty(stu => stu.Name, newStu.Name);
    setter.SetProperty(stu => stu.Major, newStu.Major);
});

上記の方法ではクエリを回避できますが、古い値と新しい値の比較は行われません。ユーザーがどの属性を変更したかわからないため、すべての属性を SET できるのは 1 回だけです。実際、すべてのフィールドを SET するこのメソッドはより単純な操作です。エンティティのステータスを Modified に変更するだけです。 EF Core は完全な SET 句も生成します。

 public async Task UpdateStudent(Student stu/*, string old*/)
 {
     var dbcontext = HttpContext.RequestServices.GetRequiredService();
     // 开始跟踪
     dbcontext.Students.Attach(stu);
     // 强行改变实体状态
     dbcontext.Students.Update(stu);

     // 提交更新
     _ = await dbcontext.SaveChangesAsync();
     return RedirectToAction("Index");
 }

Lao Zhou 氏はかつて自分の主要パートナーに、「エンティティがクエリされると EF Core は追跡を開始します」と語ったことがあります。それは通常の状態を指します。異常な状況では、Attach メソッドを呼び出すことができます。このメソッドの機能は、EF Core の追跡リストにエンティティ インスタンスを手動で追加し、エンティティのステータスを Unchanged、つまり未変更に設定することです。

その後、Update メソッドを呼び出すと、エンティティのステータスが Modified に変更されます。もちろん、EF Core はどの属性が変更されたかをまだ認識していないため、主キーを除いて、他のすべての属性が変更されました。

【ASP.NET Core】让 EF Core 生成更“合理”的 UPDATE 语句 – 东邪独孤

画像

EF Core によって生成される SQL ステートメントは次のとおりです。

UPDATE "tb_students" SET "Major" = @p0, "Name" = @p1
      WHERE "Id" = @p2
      RETURNING 1;

Name 属性は変更していませんが、EF Core では比較判定できないため、Name 属性も設定されます。

それでは、どのプロパティが変更されたかを EF Core に知らせる方法はあるのでしょうか?はい、EF Core ではエンティティの状態を変更できるだけでなく、古い値 (スナップショット値) と新しい値 (現在の値) を手動で設定することもできます。ただし、HTTP ステートレスの問題、つまり HTTP は一連のリクエスト後に痕跡を残さないという問題を解決する必要があります。したがって、ユーザーがデータを要求すると、クライアントに戻るときにエンティティ オブジェクトのバックアップが作成されます。ユーザーが編集を完了すると、バックアップの古い値とともにサーバーに POST されて戻され、比較できるようになります。

@model DB.Student

<form class="modal-dialog" method="post" asp-action="@nameof(HomeController.UpdateStudent)">
    <input type="hidden" asp-for="Id" />
    @{
            // 把旧的值序列为 JSON
            string json = JsonSerializer.Serialize(Model);
    }
    <input type="hidden" name="old" value="@json"/>
    <div class="modal-content">
        <div class="modal-header">
            <h5>编辑学生信息h5>
            <button type="button" class="btn-close" data-bs-dismiss="modal">button>
        div>
        <div class="modal-body">
            <div class="row mb-3">
                <label class="form-label" asp-for="Name">姓名:label>
                <input type="text" class="form-control" asp-for="Name" />
            div>
            <div class="row mb-3">
                <label class="form-label" asp-for="Major">专业:label>
                <input class="form-control" type="text" asp-for="Major" />
            div>
        div>
        <div class="modal-footer">
            <button type="button" data-bs-dismiss="modal" class="btn btn-secondary">取消button>
            <button type="submit" class="btn btn-primary">确定button>
        div>
    div>
form>

フォームでは、隠しフィールドを使用して古いデータ (JSON) を保存し、POST を受け取るアクション メソッドに old という名前の文字列パラメータを追加するだけです。

public async Task UpdateStudent(Student stu, string old)
{
    var dbcontext = HttpContext.RequestServices.GetRequiredService();
    // 开始跟踪
    dbcontext.Students.Attach(stu);
    var entry = dbcontext.Students.Entry(stu);
    // 反序列化
    var oldvals = JsonSerializer.Deserialize(old);
    // 重点:设置快照
    entry.OriginalValues.SetValues(oldvals!);
    // 提交更新
    _ = await dbcontext.SaveChangesAsync();
    return RedirectToAction("Index");
}

ここで最も重要なことは、OriginalValues.SetValues という文です。これは、元のバックアップ データをスナップショットとして取得し、それを新しい値と比較します。

上記のコードは実際には簡略化できます。 Attach メソッド自体は Entry を返すため、

// 开始跟踪
var entry = dbcontext.Students.Attach(stu);
// 反序列化
var oldvals = JsonSerializer.Deserialize(old);
// 重点:设置快照
entry.OriginalValues.SetValues(oldvals!);
……

効果を見てみましょう。

画像

ここでは、学生の専攻名のみを変更しました。その後、提出してください。

画像

EF Core によって生成された SQL ステートメントを見てみましょう。

UPDATE "tb_students" SET "Major" = @p0
      WHERE "Id" = @p1
      RETURNING 1;

Major 属性の値のみが変更されたことが認識されるため、SET 句はこの属性のみを更新します。

これは快適な解決策ではないでしょうか? SQL を自動的に生成する EF Core の機能が失われることはなく、SQL ステートメントを自分でアセンブルする必要もありません。

今回シェアする内容は比較的シンプルなのでここまでです。大きな友人たちにとっては、Lao Zhou が長い間記事を書いていないため、再びどのような大きなプロジェクトに取り組むことになったのか疑問に思っているかもしれません。考えすぎると、Lao Zhou のような田舎のプログラマーを大きなプロジェクトに求めることはなくなるでしょう。彼らは間違いなく証明書でいっぱいの部屋を持ったハンサムな男性を探しているでしょう。

最近、私は小規模な Stm32 プロジェクトに取り組みましたが、それほど複雑ではなく、9 日しかかかりませんでした。一番の理由は、私が彼らの工場に行き、最終的に計画をまとめるまで4、5日間彼らと議論したことです。しかもボスは未だに500元使って人を殺したいと思っていて、頭も分からず盲目的な指示を出してくる(この男は何も理解せずXのふりをして喜んでいる)。良識あるのは工場のマネージャー (おそらくマネージャー) であり、プロジェクトを成功させたこの若者は大いに評価されるに値するので、私たちはお互いに議論することができます。ラオ・イーイーは最初から上司に厳しい言葉をかけた。数百ドルを使えるのであれば、AI を使用して自分で行うことができます。それをやってくれる人を見つける必要はありません。あなたが私にやってくれるとわかってくれれば、私はあなたのニーズに応じてやりますが、あなたは私の考えに従わなければならず、大声で怒鳴ったりしないでください。行って聞いてみましょう。大学を卒業したばかりの頃、面接で人事にあえて厳しい態度をとったことが激怒して退職しました。あなたはまだランク付けされていません。



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *

தீவிர சூறாவளி புயல் 'முரசு' சென்னையில் நாளை பள்ளிகளுக்கு விடுமுறை 'முரசு' புயல் குறித்த தகவல்கள் சென்னையில் நாளை பள்ளிகளுக்கு விடுமுறையா? வானிலை சென்னையில் நாளை விடுமுறையா? 'முரசு' புயல் வானிலை சென்னையில் புயல் 'முரசு' புயல் கண்காணிப்பு சென்னையின் வானிலை தெலுங்கானா சென்னை வானிலை புயல் கண்காணிப்பு செங்கல்பட்டில் இன்று பள்ளிகளுக்கு விடுமுறை சென்னையில் பள்ளிகளுக்கு விடுமுறை செங்கல்பட்டில் பள்ளிகளுக்கு விடுமுறை விஜயவாடா வானிலை வானிலை அறிக்கை 'முரசு' புயல் கண்காணிப்பு இன்றைய வானிலை அறிக்கை சென்னையில் நாளை பள்ளிகளுக்கு விடுமுறை சென்னை வானிலை சென்னையில் இன்று பள்ளிகளுக்கு விடுமுறையா? இன்றைய சென்னை வானிலை விமான சேவைகள் தமிழ் பக்தாகோர் (Pakhtakor) vs அல்-நாசர் (Al-Nassr) பக்தாகோர் எஃப்சி vs அல்-நாசர் எஃப்சி தரவரிசை ஏஎஃப்சி (AFC) சாம்பியன்ஸ் லீக் பக்தாகோர் எஃப்சி vs அல்-நாசர் எஃப்சி அணிகளின் விவரம் ஜோவா ஃபெலிக்ஸ் (João Félix) அல்-நாசர் எஃப்சி பக்தாகோர் எஃப்சி நியூ இங்கிலாந்து (New England) vs இன்டர் மியாமி (Inter Miami) நியூ இங்கிலாந்து ரெவல்யூஷன் vs இன்டர் மியாமி தரவரிசை எம்எல்எஸ் (MLS) இன்டர் மியாமி லியோனல் மெஸ்ஸி இன்டர் மியாமி சிஎஃப் இன்டர் மியாமி vs நியூ இங்கிலாந்து நியூ இங்கிலாந்து ரெவல்யூஷன் vs இன்டர் மியாமி அணிகளின் விவரம் மெஸ்ஸியின் மொத்த கோல்கள் நியூ இங்கிலாந்து ரெவல்யூஷன் vs இன்டர் மியாமி போட்டி நிகழ்வுகள் இன்டர் மியாமி போட்டிகள் நியூ இங்கிலாந்து ரெவல்யூஷன் நியூ இங்கிலாந்து ரெவல்யூஷன் vs இன்டர் மியாமி ஓமன் vs நெதர்லாந்து ஓமன் தேசிய கிரிக்கெட் அணி vs நெதர்லாந்து தேசிய கிரிக்கெட் அணி தரவரிசை ஓமன் vs நெதர்லாந்து ஓமன் தேசிய கிரிக்கெட் அணி vs நெதர்லாந்து தேசிய கிரிக்கெட் அணி போட்டி ஸ்கோர்கார்டு ஐசிசி (ICC) சிடபிள்யூசி (CWC) லீக் 2 ஓமன் தேசிய கிரிக்கெட் அணி vs நெதர்லாந்து தேசிய கிரிக்கெட் அணி தரவரிசை ஓமன் தேசிய கிரிக்கெட் அணி vs நெதர்லாந்து தேசிய கிரிக்கெட் அணி போட்டி ஸ்கோர்கார்டு நவம்பர் 2 - தங்கம் மற்றும் வெள்ளி விலை நிலவரம் வெள்ளி மற்றும் தங்கத்தின் விலைகள் தங்கம் குறித்த செய்திகள் இன்றைய தங்க விலை பெங்களூருவில் இன்றைய தங்க விலை ஹைதராபாத்தில் இன்றைய தங்க விலை கொல்கத்தாவில் இன்றைய தங்க விலை சென்னையில் இன்றைய தங்க விலை இன்றைய தங்கம் மற்றும் வெள்ளி விலை பெங்களூருவில் இன்றைய தங்க விலை சென்னையில் இன்றைய தங்க விலை இன்றைய தங்க விலை தனிஷ்க் (Tanishq) தங்க விலை வெள்ளி - எம்சிஎக்ஸ் (MCX) நேரலை விலை பெங்களூருவில் இன்றைய வெள்ளி விலை கோயம்புத்தூரில் இன்றைய தங்க விலை இன்றைய தங்கம் விலை தங்கத்தின் விலைகள் சென்னையில் இன்றைய தங்க விலை இன்றைய தங்க விலை இன்றைய வெள்ளி விலை MCX தங்கம் MCX தங்க விலை விலைமதிப்பற்ற உலோகம் மும்பையில் இன்றைய தங்க விலை ஹைதராபாத்தில் இன்றைய தங்க விலை டெல்லியில் இன்றைய தங்க விலை ஹைதராபாத்தில் இன்றைய தங்க விலை MCX தங்க விலை சென்னையில் தங்க விலை பெங்களூருவில் இன்றைய தங்க விலை MCX வெள்ளி விலை MCX மலபார் தங்க விலை இன்றைய MCX தங்க விலை இன்றைய 22 காரட் தங்க விலை இன்றைய 22K தங்க விலை நேரலை தங்க விலை இன்றைய 18 காரட் தங்க விலை கிமி அன்டோனெல்லி கிமி F1 தரவரிசை F1 F1-ன் மிக இளம் சாம்பியன் கிமி அன்டோனெல்லி ஃபார்முலா 1 F1 ஓட்டுநர் தரவரிசை F1 பந்தயம் F1 நேரலை F1 மெக்சிகோ கிராண்ட் பிரிக்ஸ் F1 2026 மேக்ஸ் வெர்ஸ்டாப்பன் F1 முடிவுகள் மெக்சிகோ கிராண்ட் பிரிக்ஸ் F1 மெக்சிகோ GP ரிலையன்ஸ் பங்கு விலை ரிலையன்ஸ் பங்கு ரிலையன்ஸ் RIL பங்கு விலை ரிலையன்ஸ் இண்டஸ்ட்ரீஸ் பங்கு விலை RIL பங்கு RIL பங்கு விலை உயர்வு குறித்த பகுப்பாய்வு ரிலையன்ஸ் இண்டஸ்ட்ரீஸ் பங்கு அனுஜ் தாக்கூர் நடிகர் அனுஜ் தாக்கூர் வலிப்பு (seizure) தூக்கம் விமானம் விபத்து புளோரிடா விமான விபத்து லியர்ஜெட் (Learjet) லியர்ஜெட் 60 வீடியோக்கள் புளோரிடா ஆஸ்டின் விபத்து இன்றைய செய்திகள் ரிமி டோமி லிபின் மேத்யூ - ரிமி டோமி ரிமி டோமி திருமணம் திருமணம் லிபின் மேத்யூ ரிமி டோமி டேலைட் சேவிங்ஸ் (Daylight Savings) 2026 டேலைட் சேவிங்ஸ் அமெரிக்காவில் டேலைட் சேவிங்ஸ் 2026 அமெரிக்காவில் டேலைட் சேவிங்ஸ் 2026 டேலைட் சேவிங்ஸ் அமெரிக்காவில் டேலைட் சேவிங்ஸ் 2026 ஷாருக்கான் பிறந்தநாள் ஷாருக்கான் ஷாருக்கான் பிறந்தநாள் கிங் (King) SRK பிறந்த தேதி சித்தார்த் ஆனந்த் SRK வயது ஷாருக் இந்தித் திரைப்படம் கேரள லாட்டரி முடிவுகள் கேரள லாட்டரி முடிவு இன்றைய கேரள லாட்டரி முடிவு இன்றைய பாக்யதாரா லாட்டரி முடிவு இன்றைய லாட்டரி முடிவு இன்றைய கேரள லாட்டரி முடிவு (நேரலை) இன்றைய கேரள லாட்டரி முடிவு இன்றைய கேரள லாட்டரி முடிவு (மதியம் 3 மணி) லாட்டரி இன்றைய முடிவு கேரள லாட்டரி முடிவு - இன்று பிற்பகல் 3 மணி (நேரலை) கேரள லாட்டரி முடிவு - நேற்று サイクロン「ムラス(Murasu)」 チェンナイの学校、明日は休校か サイクロン「ムラス」最新情報 チェンナイの学校は明日休みか? 天気 チェンナイは明日休みか? サイクロン「ムラス」の気象情報 チェンナイのサイクロン サイクロン「ムラス」追跡 チェンナイの天気 テランガーナ州 チェンナイの天気 サイクロン追跡 チェンガルパットゥの学校は今日休校か チェンナイの学校休校情報 チェンガルパットゥの学校休校情報 ビジャヤワーダの天気 天気予報 サイクロン「ムラス」追跡 今日の天気予報 チェンナイの学校、明日は休校 チェンナイの天気 チェンナイの学校は今日休みか? 今日のチェンナイの天気 フライト情報 タミル語 パフタコール対アル・ナスル パフタコールFC対アル・ナスル:順位表 AFCチャンピオンズリーグ パフタコールFC対アル・ナスル:出場メンバー ジョアン・フェリックス アル・ナスルFC パフタコールFC ニューイングランド対インテル・マイアミ ニューイングランド・レボリューション対インテル・マイアミ:順位表 MLS(メジャーリーグサッカー) インテル・マイアミ リオネル・メッシ インテル・マイアミCF インテル・マイアミ対ニューイングランド ニューイングランド・レボリューション対インテル・マイアミ:出場メンバー メッシの通算ゴール数 ニューイングランド・レボリューション対インテル・マイアミ:試合経過 インテル・マイアミの試合 ニューイングランド・レボリューション ニューイングランド・レボリューション対インテル・マイアミ オマーン対オランダ オマーン代表クリケットチーム対オランダ代表クリケットチーム:順位表 オマーン対オランダ オマーン代表クリケットチーム対オランダ代表クリケットチーム:試合スコアカード ICCクリケット・ワールドカップ・リーグ2 オマーン代表クリケットチーム対オランダ代表クリケットチーム:順位 オマーン代表クリケットチーム対オランダ代表クリケットチーム:試合スコアカード 11月2日の金・銀価格 銀・金価格 金に関するニュース 今日の金価格 バンガロールの今日の金価格 ハイデラバードの今日の金価格 コルカタの今日の金価格 チェンナイの今日の金価格 今日の金・銀価格 バンガロールの今日の金価格 チェンナイの今日の金価格 今日の金価格 タニシュク(Tanishq)の金価格 銀のMCX(インド商品取引所)ライブ価格 バンガロールの今日の銀価格 コインバトールの今日の金価格 今日の金価格価格 金価格 チェンナイの今日の金価格 今日の金価格 今日の銀価格 MCX(インド商品取引所)金価格 MCX金価格 貴金属 ムンバイの今日の金価格 ハイデラバードの今日の金価格 デリーの今日の金価格 ハイデラバードの今日の金価格 MCX金価格 チェンナイの金価格 バンガロールの今日の金価格 MCX銀価格 MCX マラバール・ゴールド(Malabar Gold)の金価格 今日のMCX金価格 今日の22金(22カラット)価格 今日の22金価格 金価格(リアルタイム) 今日の18金(18カラット)価格 キミ・アントネッリ キミ F1順位表 F1 キミ・アントネッリ(最年少F1チャンピオン候補) フォーミュラ1 F1ドライバー順位表 F1レース F1ライブ F1メキシコグランプリ F1 2026年シーズン マックス・フェルスタッペン F1結果 メキシコグランプリ F1メキシコGP リライアンス(Reliance)の株価 リライアンス株 リライアンス RIL株価 リライアンス・インダストリーズの株価 RIL株 RIL株価急騰の分析 リライアンス・インダストリーズ株 アヌジ・タクール 俳優アヌジ・タクール 発作 睡眠 飛行機墜落事故 フロリダでの飛行機墜落事故 リアジェット リアジェット60 動画 フロリダ オースティンでの事故 今日のニュース リミ・トミー リビン・マシュー、リミ・トミー リミ・トミーの結婚 結婚 リビン・マシュー リミ・トミー 2026年のサマータイム(デイライト・セービング) サマータイム 2026年米国のサマータイム 2026年米国サマータイム サマータイム 2026年米国サマータイム シャー・ルク・カーンの誕生日 シャー・ルク・カーン シャー・ルク・カーンの誕生日 キング SRK(シャー・ルク・カーン)の誕生日 シッダールト・アーナンド SRKの年齢 シャー・ルク ヒンディー語映画 ケーララ州宝くじの結果 ケーララ州宝くじ結果 今日のケーララ州宝くじ結果 今日の「バギャターラ(Bhagyathara)」宝くじ結果 今日の宝くじ結果 今日のケーララ州宝くじ結果(ライブ) 今日のケーララ州宝くじ結果 今日のケーララ州宝くじ結果(午後3時) 宝くじ本日の結果 ケーララ宝くじ 本日の結果(午後3時ライブ) ケーララ宝くじ 昨日の結果 তীব্র ঘূর্ণিঝড় 'মুরাসু' চেন্নাইতে আগামীকাল স্কুল ছুটি ঘূর্ণিঝড় 'মুরাসু' সংক্রান্ত আপডেট চেন্নাইতে আগামীকাল স্কুল ছুটি কি না আবহাওয়া চেন্নাইতে কি আগামীকাল ছুটি? ঘূর্ণিঝড় 'মুরাসু' ও আবহাওয়া চেন্নাইতে ঘূর্ণিঝড় ঘূর্ণিঝড় 'মুরাসু' ট্র্যাকার চেন্নাইয়ের আবহাওয়া তেলেঙ্গানা চেন্নাইয়ের আবহাওয়া ঘূর্ণিঝড় ট্র্যাকার চেঙ্গলপাট্টুতে আজ স্কুল ছুটি চেন্নাইতে স্কুল ছুটি চেঙ্গলপাট্টুতে স্কুল ছুটি বিজয়ওয়াড়ার আবহাওয়া আবহাওয়া প্রতিবেদন ঘূর্ণিঝড় 'মুরাসু' ট্র্যাকার আজকের আবহাওয়া প্রতিবেদন চেন্নাইতে আগামীকাল স্কুল ছুটি চেন্নাইয়ের আবহাওয়া চেন্নাইতে আজ স্কুল ছুটি কি না আজকের চেন্নাইয়ের আবহাওয়া বিমান চলাচল তামিল পাখতাকোর বনাম আল-নাসর পাখতাকোর এফসি বনাম আল-নাসর পয়েন্ট টেবিল এএফসি চ্যাম্পিয়ন্স লিগ পাখতাকোর এফসি বনাম আল-নাসর লাইনআপ জোয়াও ফেলিক্স আল-নাসর এফসি পাখতাকোর এফসি নিউ ইংল্যান্ড বনাম ইন্টার মায়ামি নিউ ইংল্যান্ড রেভোলিউশন বনাম ইন্টার মায়ামি পয়েন্ট টেবিল এমএলএস (MLS) ইন্টার মায়ামি লিওনেল মেসি ইন্টার মায়ামি সিএফ ইন্টার মায়ামি বনাম নিউ ইংল্যান্ড নিউ ইংল্যান্ড রেভোলিউশন বনাম ইন্টার মায়ামি লাইনআপ মেসির মোট গোল নিউ ইংল্যান্ড রেভোলিউশন বনাম ইন্টার মায়ামি টাইমলাইন ইন্টার মায়ামির ম্যাচসমূহ নিউ ইংল্যান্ড রেভোলিউশন নিউ ইংল্যান্ড রেভোলিউশন বনাম ইন্টার মায়ামি ওমান বনাম নেদারল্যান্ডস ওমান জাতীয় ক্রিকেট দল বনাম নেদারল্যান্ডস জাতীয় ক্রিকেট দল পয়েন্ট টেবিল ওমান বনাম নেদারল্যান্ডস ওমান জাতীয় ক্রিকেট দল বনাম নেদারল্যান্ডস জাতীয় ক্রিকেট দল ম্যাচ স্কোরকার্ড আইসিসি সিডব্লিউসি (CWC) লিগ ২ ওমান জাতীয় ক্রিকেট দল বনাম নেদারল্যান্ডস ক্রিকেট দল র‍্যাঙ্কিং ওমান জাতীয় ক্রিকেট দল বনাম নেদারল্যান্ডস ক্রিকেট দল ম্যাচ স্কোরকার্ড ২রা নভেম্বর সোনা ও রুপার দর সোনা ও রুপার দাম সোনা বিষয়ক খবর আজকের সোনার দর ব্যাঙ্গালোরে আজকের সোনার দর হায়দ্রাবাদে আজকের সোনার দর কলকাতায় আজকের সোনার দর চেন্নাইতে আজকের সোনার দর আজ সোনা ও রুপার দর ব্যাঙ্গালোরে আজকের সোনার দর চেন্নাইতে আজকের সোনার দর আজকের সোনার দর