باسلام،
ضمن سپاس مجدد،
1-شما در فرمایشاتتون از روش DB First دفاع نمودید، ولی در پروژه از قابلیتهای آن چندان استفاده ای نشد و تنها در حد ایجاد جداول و روابط بین آنها و سپس برای تبدیل جداول به کلاسهای مورد نظر و در نهایت استفاده از آنها کار شد. در واقع پروژه DB First بود ولی بنظر میرسید که در عمل Code First جلو رفت. آیا با این نظر موافقید؟
2-سوال دیگر بنده این است که اگر در همین حالت قرار بود از امکاناتی چون Function، SPها،تریگرها و ویوها استفاده می نمودید نحوه ادامه کار چگونه میشد؟ آیا ترکیبی از دو روش؟
3- در مجموع تصور میکنم هر دو روش معایبی دارند.
در روش DB First باید یک کار اضافه کرده و کلاسهای متادیتا را کنارش جداگانه ایجاد کنیم تا بتوانیم Attribute ها را به آنها بدهیم. همچنین در زمان ایجاد روابط بین جداول بعضا نامگذاریها مناسب نیست. مثلا اگر در یک جدول دو فیلد باشد و آن دو فیلد دو رابطه با یک جدول پایه داشته باشند در زمان نامگذاری روابط و ایجاد Lazy loading نامانوس نامگذاری خواهد شد.
در روش Code First بخصوص برای پروژه دارای دهها جدول و روابط پیچیده بین آنها، تعریف ارتباطات سخت خواهد بود و بصورت یک دیاگرام مشخص قابل رویت نیستند. ضمن اینکه بحث ایندکس گذاری روی فیلدها و سایر امکاناتی که در بانک براحتی انجام میشود نیز وجود دارد.
با توجه به اینکه مرتب بحث Code First به عنوان روشی جدید تبلیغ می شود واقعا انتخاب بین این دو سخت بنظر میرسد. اینطور نیست؟
سلام
به نکات خوبی اشاره کردید و توضیحش در چند خط جا نمیشه
به زودی یه ویدئو برای این موضوع منتشر میکنم
خودم از هر دو روش استفاده میکنم و در اون دوره با استفاده از پروژه های خودم توضیح خواهم داد