Microsoft.AspNet.Identity.EntityFramework - حقول معرف المستخدم ومعرف الدور

StackOverflow https://stackoverflow.com//questions/20010300

سؤال

microsoft.aspnet.identity.entityframework - الكائنات userentity و roleidenity لها حقول معرف من سلسلة النوع ، وبالتالي فإن الجداول التي تم إنشاؤها لها أنواع بيانات nvarchar (128).

ألا ينبغي أن تكون خصائص معرف هذه الكائنات من النوع System.Guid وقاعدة البيانات تحتوي على أنواع بيانات ذات معرف فريد؟لماذا ليسوا كذلك؟يتم إدراج المعرف الفريد العمومي (GUID) عند إنشاء المستخدم والدور الجديد.

هل كانت مفيدة؟

المحلول

Hao Kung من فريق ASP.NET كتب هذا في تعليق على هذا سؤال حول كيفية تغيير المعرفاكتب إلى int.

لذلك قررنا على مفاتيح السلسلة لتجنب الاضطرار إلى التعامل مع مشكلات التسلسل الرئيسية، يمكن أن يستخدم التنفيذ الافتراضي لشركة EF Ints كجزء أساسي، وكانت GUID طريقة سهلة لإنشاء مفتاح سلسلة فريد عشوائي.

نصائح أخرى

على الأرجح لأن API هو موفر التخزين المستقل بحيث يحتفظ بأنواع الحقول كعامية قدر الإمكان: http://blogs.msdn.com/b/webdev/archive/2013/06/27/ Retroducing-asp-net-imentity-membership-system-for-asp-net-applications.aspx

"إذا كانت متطلبات التطبيق الخاصة بك هي أن هذه المعلومات قد يتم تخزينها في آلية تخزين مختلفة مثل خدمة SharePoint، خدمة طاولة Azure، لا توجد قواعد بيانات SQL وما إلى ذلك، فمن الممكن الآن توصيل مقدمي تخزين مختلف."

قد يكون السبب الآخر لمعرف مستخدم السلسلة هو أن السلاسل يتم ترميزها بشكل ثابت في واجهة برمجة تطبيقات المطالبات، على وجه التحديد، Microsoft.AspNet.Identity.IdentityExtensions.GetUserId, ، الذي يستخدم System.Security.Claims.Value, وكلاهما يقوم بإرجاع السلاسل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top