Работает ли PluralizeDataContextPropertyNames ?
От: ILog  
Дата: 27.11.10 16:49
Оценка: 66 (1)
Присматриваюсь к BLToolkit, решил потренироваться на кошечках — Northwind в MS SQL Server 2008. Копирую *.ttinclude, создаю Northwind.tt без добавления PluralSingular.ttinclude. Получаю Products в DataContext и Products (опять же) в имени entity class. Хотелось бы поиметь имя для энтити в единственном числе, поэтому подключаю PluralSingular.ttinclude и добавляю

SingularizeClassNames = true;
PluralizeDataContextPropertyNames = true;

Получаю Product и там, и там. Впечатление, что вторая строчка не действует вообще. Или я чего-то не понимаю. Не мог бы кто-нибудь объяснить? Хотел бы видеть таблицы во множественном числе, а entity class — в единственном (как в LINQ2SQL)
Re: Работает ли PluralizeDataContextPropertyNames ?
От: IT Россия linq2db.com
Дата: 27.11.10 16:59
Оценка:
Здравствуйте, ILog, Вы писали:

IL>Присматриваюсь к BLToolkit, решил потренироваться на кошечках — Northwind в MS SQL Server 2008. Копирую *.ttinclude, создаю Northwind.tt без добавления PluralSingular.ttinclude. Получаю Products в DataContext и Products (опять же) в имени entity class. Хотелось бы поиметь имя для энтити в единственном числе, поэтому подключаю PluralSingular.ttinclude и добавляю


IL> SingularizeClassNames = true;

IL> PluralizeDataContextPropertyNames = true;

IL>Получаю Product и там, и там. Впечатление, что вторая строчка не действует вообще. Или я чего-то не понимаю. Не мог бы кто-нибудь объяснить? Хотел бы видеть таблицы во множественном числе, а entity class — в единственном (как в LINQ2SQL)


А если просто включить PluralSingular.ttinclude без установки флажков?
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Работает ли PluralizeDataContextPropertyNames ?
От: ILog  
Дата: 27.11.10 18:14
Оценка:
Здравствуйте, IT, Вы писали:

IT>А если просто включить PluralSingular.ttinclude без установки флажков?


Проверил. Все в единственном числе.
Re[3]: Работает ли PluralizeDataContextPropertyNames ?
От: ILog  
Дата: 27.11.10 18:21
Оценка:
IT>>А если просто включить PluralSingular.ttinclude без установки флажков?

IL>Проверил. Все в единственном числе.


Еще раз перегенерил, теперь часть таблиц датаконтекста во множественном, часть в единственном, энтити классы — все в единственном.



    public partial class NorthwindDataContext : DbManager
    {
        public Table<AlphabeticalListOfProduct>  AlphabeticalListOfProduct    { get { return this.GetTable<AlphabeticalListOfProduct>();  } }
        public Table<Category>                   Category                     { get { return this.GetTable<Category>();                   } }
        public Table<CategorySalesFor1997>       CategorySalesFor1997         { get { return this.GetTable<CategorySalesFor1997>();       } }
        public Table<CurrentProductList>         CurrentProductLists          { get { return this.GetTable<CurrentProductList>();         } }
        public Table<CustomerAndSuppliersByCity> CustomerAndSuppliersByCities { get { return this.GetTable<CustomerAndSuppliersByCity>(); } }
        public Table<CustomerCustomerDemo>       CustomerCustomerDemos        { get { return this.GetTable<CustomerCustomerDemo>();       } }
        public Table<CustomerDemographic>        CustomerDemographic          { get { return this.GetTable<CustomerDemographic>();        } }
        public Table<Customer>                   Customer                     { get { return this.GetTable<Customer>();                   } }
        public Table<Employee>                   Employee                     { get { return this.GetTable<Employee>();                   } }
        public Table<EmployeeTerritory>          EmployeeTerritory            { get { return this.GetTable<EmployeeTerritory>();          } }
        public Table<Invoice>                    Invoice                      { get { return this.GetTable<Invoice>();                    } }
        public Table<OrderDetail>                OrderDetail                  { get { return this.GetTable<OrderDetail>();                } }
        public Table<OrderDetailsExtended>       OrderDetailsExtendeds        { get { return this.GetTable<OrderDetailsExtended>();       } }
        public Table<OrderSubtotal>              OrderSubtotal                { get { return this.GetTable<OrderSubtotal>();              } }
        public Table<Order>                      Order                        { get { return this.GetTable<Order>();                      } }
        public Table<OrdersQry>                  OrdersQries                  { get { return this.GetTable<OrdersQry>();                  } }
        public Table<ProductSalesFor1997>        ProductSalesFor1997          { get { return this.GetTable<ProductSalesFor1997>();        } }
        public Table<Product>                    Product                      { get { return this.GetTable<Product>();                    } }
        public Table<ProductsAboveAveragePrice>  ProductsAboveAveragePrices   { get { return this.GetTable<ProductsAboveAveragePrice>();  } }
        public Table<ProductsByCategory>         ProductsByCategories         { get { return this.GetTable<ProductsByCategory>();         } }
        public Table<QuarterlyOrder>             QuarterlyOrder               { get { return this.GetTable<QuarterlyOrder>();             } }
        public Table<Region>                     Regions                      { get { return this.GetTable<Region>();                     } }
        public Table<SalesByCategory>            SalesByCategories            { get { return this.GetTable<SalesByCategory>();            } }
        public Table<SalesTotalsByAmount>        SalesTotalsByAmounts         { get { return this.GetTable<SalesTotalsByAmount>();        } }
        public Table<Shipper>                    Shipper                      { get { return this.GetTable<Shipper>();                    } }
        public Table<SummaryOfSalesByQuarter>    SummaryOfSalesByQuarters     { get { return this.GetTable<SummaryOfSalesByQuarter>();    } }
        public Table<SummaryOfSalesByYear>       SummaryOfSalesByYears        { get { return this.GetTable<SummaryOfSalesByYear>();       } }
        public Table<Supplier>                   Supplier                     { get { return this.GetTable<Supplier>();                   } }
        public Table<Territory>                  Territory                    { get { return this.GetTable<Territory>();                  } }
    }
Re: Работает ли PluralizeDataContextPropertyNames ?
От: IT Россия linq2db.com
Дата: 27.11.10 22:55
Оценка:
Здравствуйте, ILog, Вы писали:

IL>Получаю Product и там, и там. Впечатление, что вторая строчка не действует вообще. Или я чего-то не понимаю. Не мог бы кто-нибудь объяснить? Хотел бы видеть таблицы во множественном числе, а entity class — в единственном (как в LINQ2SQL)


Fixed.
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Работает ли PluralizeDataContextPropertyNames ?
От: ILog  
Дата: 28.11.10 09:31
Оценка:
Здравствуйте, IT, Вы писали:

IT>Fixed.


Спасибо, Игорь! Теперь работает. Но осталась там одна непонятка скорее идеологического плана. Темплейт обрабатывет и помещает в датаконтекст не только таблицы, но и вьюхи. В Northwind среди них есть две, заканчивающиеся числами CategorySalesFor1997 и ProductSalesFor1997. Их плюрализация игнорирует. Может быть, стоило бы и тут добавить суффикс -s ? В общем-то все это не принципиально — классы в разных неймспейсах... просто для одинаковости.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.