خطای هم نامی خواص راهبری
اهمیت: مهم نوع: درخواست راهنمایی شماره نگارش: 1
سلام دوباره.
column.PropertyName<IFoo>(m=>m.Company.Name);
column.PropertyName<IFoo>(m=>m.Person.Name);
برای این دو پروپرتی خطای هم نام بودن میگیرد.
  • #
    ‫۱۱ سال و ۱۲ ماه قبل، یکشنبه ۱۶ مهر ۱۳۹۱، ساعت ۱۸:۰۲
    IFoo به چه صورتی تعریف شده؟ لطفا ساختار آن‌را مشخص کنید.
    • #
      ‫۱۱ سال و ۱۲ ماه قبل، یکشنبه ۱۶ مهر ۱۳۹۱، ساعت ۱۸:۰۴
      به صورت یک اینترفیس که عنوان مدل به گزارش پاس داده میشود.
      ضمنا نویگیشن‌ها هم اینترفیس هستند
      • #
        ‫۱۱ سال و ۱۲ ماه قبل، یکشنبه ۱۶ مهر ۱۳۹۱، ساعت ۱۸:۰۷
        عرض کردم مشخص کنید (کد ارائه دهید) دقیقا تا بشود بررسی کرد.
        همچنین منبع داده را هم مشخص کنید که با اینترفیس دارد کار می‌کند.
        • #
          ‫۱۱ سال و ۱۲ ماه قبل، یکشنبه ۱۶ مهر ۱۳۹۱، ساعت ۱۸:۱۱
          public interface IFoo
          {
                  IPerson Person
                  {
                      get;
                  }
          
                  ICompany Company
                  {
                      get;
                  }
          
                  DateTime Date
                  {
                      get;
                  }
          
                  long NormalShareCount
                  {
                      get;
                  }
          }
          
          public interface IPerson
          {
              string Name{get;}
          }
          
          public interface ICompany
          {
             string Name{get;}
          }
          • #
            ‫۱۱ سال و ۱۲ ماه قبل، یکشنبه ۱۶ مهر ۱۳۹۱، ساعت ۱۸:۱۵
            منبع داده‌ای که از این استفاده می‌کند به چه ترتیبی تعریف شده؟ این اینترفیس‌های فقط get دار کجا پیاده سازی می‌شوند؟
            • #
              ‫۱۱ سال و ۱۲ ماه قبل، یکشنبه ۱۶ مهر ۱۳۹۱، ساعت ۱۸:۱۸
              منبع داده ای من EF هست با MVC هم کار می‌کنم، اینترفیس‌ها در یک کتابخانه دیگر پیاده سازی میشوند. اما در این لایه حتما پر می‌شود چون همین مدل را به گرید (HTML ای)مربوطه میدهم برای نمایش
  • #
    ‫۱۱ سال و ۱۲ ماه قبل، دوشنبه ۱۷ مهر ۱۳۹۱، ساعت ۱۷:۰۳
    این مورد رو به منبع داده anonymously typed قبلا اضافه کرده بودم. به strongly typed list هم اضافه شد.
    امشب در مخزن کد قرار خواهد گرفت. (نیاز خواهید داشت آخرین نگارش موجود در SVN رو دریافت کنید)
    • #
      ‫۱۱ سال و ۱۲ ماه قبل، سه‌شنبه ۱۸ مهر ۱۳۹۱، ساعت ۰۲:۴۳
      سپاسگزارم.
    • #
      ‫۱۱ سال و ۱۲ ماه قبل، سه‌شنبه ۱۸ مهر ۱۳۹۱، ساعت ۱۳:۴۷
      سلام. nested property‌ها در این کتابخانه فقط از نوع کلاس هستند، می‌توان آنها را از اینترفیس هم داشته باشیم؟
      منظورم متد isNestedProperty  هستش که فقط چک میکند که کلاس باشد و نه اینترفیس.
      در حال حاضر nested property‌های من رو که از جنس اینترفیس هستند شناسایی نمی‌کند.
      با تشکر
      • #
        ‫۱۱ سال و ۱۲ ماه قبل، سه‌شنبه ۱۸ مهر ۱۳۹۱، ساعت ۱۴:۳۶
        کاربرد اینترفیس‌ها عموما به عنوان contract و قرار داد است و آنچنان استفاده عمومی جهت تعریف خواص یک کلاس مورد استفاده در EF یا ORMها را ندارد. من در مقالات متعددی که در مورد EF بررسی کردم، کسی navigation properties رو به صورت اینترفیس تعریف نمی‌کنه (به همین جهت این سؤال و جواب‌های متعدد فوق رخ داد). شاید بگردید در اینترنت یک در هزار یکی رو معرفی کنید، اما در حالت عمومی خیر.
        بله، در حالت تعریف خواص یک کلاس که قرار است امکان تعریف قالب‌های متعددی توسط کاربر را داشته باشد، از اینترفیس‌ها هم ممکن است استفاده شود. در خود PdfReport در بسیاری از موارد از این روش استفاده شده. مثلا تعریف فونت آن یا بسیاری از سفارشی سازی‌های دیگر.
        اما کار با ORMها یک سری اصول عمومی پذیرفته شده دارد و جهت تعریف خواص تو در توی کلاس‌های آن، استفاده از اینترفیس‌ها عمومیت ندارد.
        شاید عنوان کنید که DI من کار تزریق وهله مورد نظر رو انجام می‌ده ولی .... خود ORM یک سربار است. DI هم سربار دوم. آیا کارآیی اینجا باید فدای طراحی نادرستی شود؟ استفاده از اینترفیس‌ها الزاما به معنای حرفه‌ای بودن یک طراحی نیست. بستگی داره کجا استفاده شدند. آیا قابلیت سفارشی سازی و افزونه پذیری رو ارائه می‌کنه؟ یا خیر؟