سؤال

أنا باستخدام .صافي إطار الكيان و لدي كيان واحد يحتوي على varbinary.هل هناك طريقة سهلة للحصول على حجم varbinary في codebehind, efter إنه تم استردادها من قاعدة البيانات ؟

أنا أفكر أنه قد يكون هناك بعض طريقة للحصول على الحجم مباشرة من كيان شيء مثل الكيان.السياق.حجم – أو لا أحد بحاجة إلى التعامل معها بشكل مختلف ؟

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

المحلول

A varbinary يترجم إلى byte[] الميدانية في إطار الكيان ، مما يعني يمكنك التحقق طول خاصية الصفيف:

int fieldSize = entity.MyVarBinaryField.Length;

كما ذكر من قبل tster:في LINQ إلى كيانات الاستعلام يمكنك الاتصال DataLength طريقة SqlFunctions الدرجة التي سوف تترجم إلى DATALENGTH استدعاء دالة في إنشاء عبارة SQL.هذا يعمل فقط مع SQL Server و Entity Framework 4 أو في وقت لاحق:

int? fieldSize = repository.Entity
  .Select(e => SqlFunctions.DataLength(e.MyVarBinaryField)).Single();

نصائح أخرى

وأعرف أن هذا السؤال هو القديم، ولكن EF الآن يدعم هذا باستخدام SqlFunctions.DataLength()

وأنا حلها عن طريق تشغيل استعلام آخر، والحصول على DATALENGTH () للخلية. لا أسلس طريقة كنه يعمل.

وأنا ما زلت في الاستماع إذا كان أي شخص يمكن أن تأتي مع إجابة لهذا على الرغم من.

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