سلام به دوستان

تو آموزش هایی که دیدم به نوعی در زمان طراحی Entityها از DataAnnotationها استفاده می کردند. همچنین در زمان انتقال اطلاعات بین لایه های برنامه و بین کلاس های مختلف، کلاسهایی با عنوان DTO ایجاد می کردند. علت هم این بود که در زمان انتقال اطلاعات بهتر است داده های اضافه (MetaData) انتقال پیدا نکنه که این کار موجب بالا رفتن راندمان برنامه میشه چرا که EF در صورت وجود DataAnnotation باید Validationهای خودش را انجام بده و...

سوالم این هستش که اگر تمام ویژگی های یک Entity Class و Propertyها را بصورت Fluent API در کلاس Context انجام بدم و عملا در Entity Class فقط Property تعریف کنم آیا نیاز به ایجاد کلاس های DTO رو میشه کاملا از بین برد و تنها یکبار Entity Class را ایجاد کنم؟ البته ViewModel ها منظورم نیست که قطعا در صورت نیاز باید ایجاد کنیم. مورد دوم هم این هستش که ممکنه بخش های مختلف یک برنامه چه Windows App و ASP.NET در صورت وجود DataAnnotationهای خاص پیکربندی خاصی را بصورت خودکار انجام دهند.

استفاده از کلاس های DTO راندمان را تا چه اندازه افزایش میده؟ آیا از همان Entity Class اولیه با DataAnnotationهای تعریف شده برای انتقال اطلاعات استفاده کنیم ایراد خاصی داره (جهت کاهش تولید کد)؟

تشکر