تمام Entityهایی که ساختم دارای Schema هستند و تمامی Modelها نیز در پوشه هایی هم نام با Schema قرار داده شده اند. برای مثال من دو کلاس در مسیرهای زیر دارم (Application = schema):
Models.Output.Application.ActionMethods.ActionMethod();
Domain.Entities.Application.ActionMethods.ActionMethod();
اگر فضای نام را using کنم و بخوام در یک متد از هر دو کلاس نمونه سازی کنم خطای زیر صادر میشه (Ambiguous reference):
using Ces.Caspian.Models.Output.Application.ActionMethods;
using Ces.Caspian.Domain.Entities.Application.ActionMethods;
{
var a = new ActionMethod();
var b = new ActionMethod();
}
//'ActionMethod' is an ambiguous reference between 'Ces.Caspian.Domain.Entities.Application.ActionMethods.ActionMethod' and 'Ces.Caspian.Models.Output.Application.ActionMethods.ActionMethod'
مگر آنکه در زمان نمونه سازی از نام کامل استفاده کنم:
var a = new Models.Output.Application.ActionMethods.ActionMethod();
var b = new Domain.Entities.Application.ActionMethods.ActionMethod();
تمامی کلاس هایی که در پروژه Model قرار دارند همان نقش DTO را دارند. چه به عنوان ورود اطلاعات و چه به عنوان خروجی. آیا نامگذاری Modelها اشکال دارند؟ در واقع سعی کردم از افزودن پیشوند و پسوند اضافه به نام Modelها پرهیز کنم.