Присматриваюсь к BLToolkit, решил потренироваться на кошечках — Northwind в MS SQL Server 2008. Копирую *.ttinclude, создаю Northwind.tt без добавления PluralSingular.ttinclude. Получаю Products в DataContext и Products (опять же) в имени entity class. Хотелось бы поиметь имя для энтити в единственном числе, поэтому подключаю PluralSingular.ttinclude и добавляю
Получаю Product и там, и там. Впечатление, что вторая строчка не действует вообще. Или я чего-то не понимаю. Не мог бы кто-нибудь объяснить? Хотел бы видеть таблицы во множественном числе, а entity class — в единственном (как в LINQ2SQL)
Re: Работает ли PluralizeDataContextPropertyNames ?
Здравствуйте, 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 ?
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 ?
Здравствуйте, ILog, Вы писали:
IL>Получаю Product и там, и там. Впечатление, что вторая строчка не действует вообще. Или я чего-то не понимаю. Не мог бы кто-нибудь объяснить? Хотел бы видеть таблицы во множественном числе, а entity class — в единственном (как в LINQ2SQL)
Fixed.
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Работает ли PluralizeDataContextPropertyNames ?
Спасибо, Игорь! Теперь работает. Но осталась там одна непонятка скорее идеологического плана. Темплейт обрабатывет и помещает в датаконтекст не только таблицы, но и вьюхи. В Northwind среди них есть две, заканчивающиеся числами CategorySalesFor1997 и ProductSalesFor1997. Их плюрализация игнорирует. Может быть, стоило бы и тут добавить суффикс -s ? В общем-то все это не принципиально — классы в разных неймспейсах... просто для одинаковости.