سؤال

لقد تم استخدام Linq to SQL لبعض الوقت الآن ، أجد أن يكون حقا مفيدة وسهلة الاستخدام.مع ORM أدوات لقد استعملت في الماضي كيان كائن شغل من قاعدة البيانات عادة الملكية تشير إلى طول البيانات الأساسية عمود في قاعدة البيانات.وهذا مفيد في ربط البيانات الحالات حيث يمكنك تعيين الخاصية MaxLength على مربع نص ، على سبيل المثال ، إلى الحد من طول المدخلات التي تم إدخالها من قبل المستخدم.

وأنا لا يمكن العثور على طريقة باستخدام Linq to SQL للحصول على طول الأساسية عمود بيانات.لا أحد يعرف من طريقة لعمل هذا ؟ مساعدة من فضلك.

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

المحلول

باستخدام LINQ ColumnAttribute للحصول على أطوال من قاعدة البيانات الخاصة بك :

http://www.codeproject.com/KB/cs/LinqColumnAttributeTricks.aspx

نصائح أخرى

شكرافي الواقع كل هذه الإجابات يبدو أن العمل.للأسف, يبدو أن ننظر إلى Linq الصفات المتولدة عند رمز الجيل تم القيام به.على الرغم من أن يبدو أن يكون الشيء الصحيح القيام به في حالة نبيع منتجات البرمجيات و أحيانا العملاء وتوسيع بعض الأعمدة أطوال لاستيعاب البيانات الخاصة بهم.وبالتالي فإن طول الحقل كما ذكرت استخدام هذا الأسلوب قد لا تعكس دائما صحيحا طول البيانات الأساسية العمود.آه حسنا, لا Linq to SQL خطأ ؟ :)

شكرا على إجابات سريعة!

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

var context = new DataContextFromSomewhere();
var connection = context.Connection;
var command = connection.CreateCommand( "SELECT TOP 1 * FROM TableImInterestedIn" );
var reader = command.ExecuteReader();
var table = reader.GetSchemaTable();

foreach( var column in table.Columns )
{
    Console.WriteLine( "Length: {0}", column.MaxLength );

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