View Full Version : استفاده از navigation property یک کلاس در propery دیگر همان کلاس در Entity framewoek code first
sh_esharif
شنبه 17 مهر 1395, 15:33 عصر
دوستان عزیز سلام
یه سوال داشتم: من در کلاس Entity Framework یک navigation property دارم و نیاز دارم یکی دیگه از پروپرتی های همون کلاس در بخش get از این navigation استفاده کنه.
چکار باید بکنم؟
این پروپرتی محاسباتی هست و علاوه بر داده هایی که از navigation propery بهشون می رسم از یکی دیگه از پروپرتی های همون کلاس هم استفاده میکنه.
ممنون از وقتی که میگذارید.
ali_md110
شنبه 17 مهر 1395, 20:06 عصر
فیلدهای محاسباتی جنبه نمایشی دارند و از مدلهاتون حذفش کنید و اتقال بدید به کلاسهای ویومدل
چون این فیلدها هنگام تبدیل به کوئری معادل اسکیولی ندارند
ولی برای تعریف باید بدینصورت تعریف کنید
مثلا فیلد FullName
[NotMapped]
[Computed]
public string FullName
{
get
{
return LastName + ", " + FirstName;
}
sh_esharif
پنج شنبه 22 مهر 1395, 18:49 عصر
دوست عزیز به سوالم دقت نکردید.
سوال من این بود که چه جوری از navigation propery استفاده کنم وگرنه شیوه نوشتن فیلد محاسباتی در Entity Framework همون طوری هست که شما نوشتید.
مشکل کد شما اینه که یا فیلد محاسباتی معادلی در دیتابیس داده که دیگه نوشتن [NotMapped] اشتباه هست یا معادلی نداره و دیگه نوشتن [Computed] غلط هست.
ali_md110
پنج شنبه 22 مهر 1395, 21:46 عصر
منظور من اینه که بکارگیری صحیح فیلد محاسباتی در یک ویومدل هست و اونو حتمن از مدلتون حذف کنید
و در اینجا شما باید ذر سازنده کلاس مدلتون اون فیلد رو بوسله فیلد ناوبری مقدار دهی کنید
ولی باز این کار ممکنه خطاهایی داشته باشه مثل نال بودن فیلد ناوبری در ضمن این خواسته شما بنظرم Lazy Loading رو اجرا میکنه که سرباز اضافی داره
sh_esharif
شنبه 24 مهر 1395, 12:12 عصر
همونطور که فرمودید با اینکه در سازنده فیلد ناوبری مقداردهی شده باز هم نال هست.
Lazy Loading در اینجا فعاله ولی کار نمی کنه. حتی virtual رو از navigation property برداشتم باز هم تغییری نکرد.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.