كيف يمكنني العودة مجهول النوع من الأسلوب ؟
-
09-06-2019 - |
سؤال
لدي استعلام Linq التي أريد أن أدعو من أماكن متعددة:
var myData = from a in db.MyTable
where a.MyValue == "A"
select new {
a.Key,
a.MyValue
};
كيف يمكنني إنشاء طريقة وضع هذا الرمز في ذلك ، ثم نسميها ؟
public ??? GetSomeData()
{
// my Linq query
}
المحلول
IQueryable و IEnumerable العمل على حد سواء.ولكن كنت ترغب في استخدام نوع معين الإصدار ، IQueryable<
T>
أو IEnumerable <
T>
.
لذلك سوف تحتاج إلى إنشاء نوع للحفاظ على البيانات.
var myData = from a in db.MyTable
where a.MyValue == "A"
select new MyType
{
Key = a.Key,
Value = a.MyValue
};
نصائح أخرى
طريقة عامة ينبغي أن تعطيك التحسس:
public class MyType {Key{get;set;} Value{get;set}}
public IQueryable<T> GetSomeData<T>() where T : MyType, new()
{ return from a in db.MyTable
where a.MyValue == "A"
select new T {Key=a.Key,Value=a.MyValue};
}
إذا كنت ترغب في العودة, كنت في حاجة الى نوع.
بدلا من var
, تعلن باستخدام IEnumerable<>
و يعود هذا المتغير.بالتكرار من خلال ذلك في الواقع ينفذ الاستعلام.
لا تنتمي إلى StackOverflow