حل جميع مشاكل Windows والبرامج الأخرى

العمل بدقة عشرية في .NET باستخدام MSSQL Server و Entity Framework

يبدو الأمر كشيء أساسي ، لكن التعامل مع الأرقام التي تتجاوز الأعداد الصحيحة الكاملة في البرنامج أمر صعب. الاختلافات بين التقريب في الكود مقابل التقريب في تخزين قاعدة البيانات يمكن أن تفاجئك إذا لم تنتبه. رمي في طبقة من التجريد مثل NET Entity Framework ويمكن أن يكون من السهل ارتكاب خطأ. إذا كنت تستخدم ملف نهج الكود الأول للتطوير باستخدام Entity Framework ، فمن المرجح أن تخطئ في الدقة العشرية.

تكمن المشكلة ، خاصةً مع الكود أولاً ، في أن الدقة الافتراضية وقيم المقياس لا تكون عادةً دقيقة بما يكفي لمعظم المواقف. عندما تحدد عمودًا في خادم MS SQL إما على أنه رقم عشري أو رقمي (كلاهما خياران ولكنهما يفعلان نفس الشيء) ، فأنت بحاجة إلى تحديد دقة ثابتة وقيمة مقياس لهذا العمود. الدقة هي العدد الإجمالي للأرقام ، بما فيها الكسور العشرية التي تريد تخزينها. المقياس هو عدد الأرقام خارج الدقة التي تريد استخدامها للأماكن العشرية. هذا التمييز بأن الدقة تشمل الخانات العشرية مهم لأن الناس يميلون إلى نسيان ذلك كثيرًا.



كيفية التقاط لقطة شاشة في google chrome

مثال:



CREATE TABLE dbo.MyTable ( MyDecimalColumn decimal(5,2) )

يتم تعريف العمود MyDecimalColumn بنوع بيانات عشري ، ودقة 5 ، ومقياس 2. وهذا يعني أن العمود سيخزن بحد أقصى 5 أرقام ، سيكون 2 منها دائمًا بعد الفاصلة العشرية - على سبيل المثال 103.27

عندما تستخدم الطريقة الأولى للتعليمة البرمجية للتطوير ، يمكنك تحديد النموذج الخاص بك في التعليمات البرمجية وإعطاء الممتلكات الخاصة بك نوعًا من العلامة العشرية.



public decimal myDecimalProperty {get; set;}

ما هو أحدث إصدار من ms office

عند تطبيق نموذج التعليمات البرمجية هذا على قاعدة البيانات لإنشاء الجدول سيتم استخدام الدقة والمقياس الافتراضيين وهما رقم عشري (18،2) وقد لا تدرك ذلك. بعد ذلك ، أثناء تقدمك في ترميز التطبيق الخاص بك ، ينتهي بك الأمر بقيمة في myDecimalProperty الخاصة بك لشيء مثل 678.0274 الذي تريد الاحتفاظ به في قاعدة البيانات. عند حفظ هذه القيمة ، ستفقد الدقة وبدلاً من تخزين العلامة العشرية الكاملة ، سيتم تخزين العلامة العشرية المقربة بدلاً من ذلك ، 678.03.

لسوء الحظ ، باستخدام الكود أولاً ، لا توجد طريقة خارجة عن المألوف لتحديد الدقة العشرية لممتلكاتك باستخدام أدوات الديكور. تحتاج بدلاً من ذلك إلى تحديد الدقة في منشئ النموذج الخاص بك ، وهو أمر جيد ، لكنه ينقل التعريف بعيدًا عن الخاصية حيث يصعب ملاحظته. حل بديل نستخدمه في مشاريعنا البرمجية الأولى ، يتم تحديد مصمم خاصية مخصص يمكن استخدامه لتحديد دقة الأنواع العشرية. ثم تقوم بتسجيل مرشح الدقة مرة واحدة في منشئ النموذج الخاص بك ومن الجيد أن تبدأ. إليك ما يبدو عليه هذا الفصل:



وإليك كيفية استخدامه .

بمجرد أن تعرف كيف تحترس من ذلك ، ستبدأ جميع مشاريعك مع مراعاة دقة الأنواع العشرية ، لكنني أعتقد أن الدقة الافتراضية قد لفتت انتباه الجميع في وقت أو آخر.

تم نشر هذه القصة ، 'العمل بدقة عشرية في .NET مع MSSQL Server و Entity Framework' في الأصل بواسطةITworld.

اختيار المحرر

وأوضح أيقونات الفرق

لم أتمكن من معرفة ما تعنيه بعض رموز الفريق. إنه يقودني إلى الجنون ماذا يعني هذا: هل لدى أي شخص مورد يوضح جميع الطرق التي يعلمك بها Teams؟

كل ما تعرفه عن أجهزة Chromebook خطأ

الخرافة: أجهزة Chromebook لا تشغل التطبيقات. حقيقة: تشغل أجهزة Chromebook تطبيقات أكثر من أي جهاز على الإطلاق.

احذف التطبيقات الافتراضية في نظام التشغيل Mac OS X

إليك كيفية التخلص من التطبيقات الافتراضية على نظام التشغيل Mac OS X. ويتضمن ذلك Safari و Facetime و Photo Booth و Mail و Stickies وغيرها.

سجل تويتر رقما قياسيا في أنباء وفاة بن لادن

قبل أن يبلغ الرئيس باراك أوباما البلاد والعالم رسمياً بمقتل الزعيم الإرهابي أسامة بن لادن ، كان فيسبوك وتويتر يعجان بالأخبار والمنشورات الاحتفالية.

تطور Intel شريحة يمكنها منافسة تلك الموجودة في MacBook Air من Apple

قامت شركة Intel بتقليص معالج آخر بنسبة 60٪ لاستخدامه في أجهزة الكمبيوتر المحمولة فائقة النحافة. قد تؤدي هذه الخطوة إلى إنشاء منافسين لـ MacBook Air من Apple.