: :
مانده تا پایان تخفیف
فقط تا آخر امروز
فقط امروز

Convert Lambda Expression

بپرسید

0

{{ digitTrunc(content.likes) }}

با سلام .

فرض کنید دو کلاس با پراپرتی های مشابه هم داریم.

 public class Class1
    {
        public Class1()
        {

        }
        public byte ID { get; set; }
        public string Name { get; set; }
    }

و

 public class Class2
    {
        public Class2()
        {

        }
        public byte ID { get; set; }
        public string Name { get; set; }
    }


که اولی یک DBSet در EF و دومی یک تابع دقیقا مشابه آن در لایه BLL.

حال در لایه BLL یک تایع میخواهم بنویسم که یک Lambda Expression دریافت کند و نتیجه را باتوجه به DBSet کلاس 1 برگرداند. مثل تابع زیر:


 public static Class2 GetData(Expression<><>> input)
        {
            Class2 result =new Class2();
            using (DBDataContext odb=new DBDataContext())
            {
                result=odb.Class1s.Single(input) //Error*****
            }
            return result; 
        }


اما عبارت input بر اساس Class2 میباشد و هنگام اعمال بر Class1 با خطا روبرو میشوم. چطور میتوانم عین همان عبارت وارد شده به تابع را از نوع Class2 به Class1 jfndg کنم و جستجو را بر DBSet انجام دهم؟


در لایه پرزنتیشن هم کدی که وارد میشود چیزی شبیه به این میباشد.

BLL.GetData(c=>c.ID==0);




مجموعه دوره آموزش برنامه نویسی - مقدماتی تا پیشرفته

پاسخ ها به این سوال

پاسخ ها به این سوال

{{ digitTrunc(post.likes) }}

این پست در تاریخ {{ dateString(new Date(post.deleteDate)) }} توسط {{ post.deletedByUser }} حذف شده است.

دلیل حذف: {{ post.deleteReason ?? 'نامشخص' }}

{{ err }}
{{ post.userAchivements.rhodiumAchievements }}
{{ post.userAchivements.platinumAchievements }}
{{ post.userAchivements.goldAchievements }}
{{ post.userAchivements.silverAchievements }}
{{ post.userAchivements.bronzeAchievements }}
{{ timeSince(new Date(post.date)) }} قبل

برای ثبت پاسخ خود در وب سایت وارد حساب کاربری خود شوید
قابلیت ارسال مطلب توسط مدیریت سایت غیر فعال شده است