Subsonic 3.0.0.3 получает разные элементы по имени столбца.ActiveRecord - PullRequest
0 голосов
/ 01 ноября 2011

У меня есть следующая структура для таблицы

CREATE TABLE [dbo].[CityDistancesMin](
    [Id] int identity(1,1) not null,
    [City1] [int] NOT NULL,
    [City2] [int] NOT NULL,
    [Car] [nvarchar](50) NOT NULL,
    [Distance] [int] NOT NULL,
CONSTRAINT [PK_CityDistancesMin] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
) WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF,
    ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) 
ON [PRIMARY]

И мне нужен способ получить разные идентификаторы городов в SubSonic 3.0.0.3. Например, на sql это будет только Select distinct City1 from CityDistancesMin

Я пытался сделать следующее

SqlQuery query = new Select(CityDistancesMinTable.City1Column)
    .From< CityDistancesMinTable>();
     query.Aggregates = new List<Aggregate> {
          new Aggregate(CityDistancesMinTable.City1Column, AggregateFunction.GroupBy)
     };

Но я получаю следующую ошибку:

Не удается решить, какое свойство рассматривать как ключ - вы можете создать свойство с именем 'ID' или пометить его атрибутом SubSonicPrimaryKey "

Я пытался переименовать Id в ID, но, похоже, это не помогло.

1 Ответ

0 голосов
/ 04 января 2012

Не очевидно, как вам удалось вызвать эту ошибку из этой базы данных.Ошибка - строка 301 в файле Extensions.Object.cs, и она должна быть связана с анализом схемы на основе атрибутов свойств в коде.Если вы используете шаблоны ActiveRecord для обработки схемы базы данных, он должен был найти столбец ID, но в любом случае не должен вызывать эту ошибку.По крайней мере, так я это понимаю.

Если это не поможет, можете ли вы опубликовать репродукцию?Абсолютный минимум строк кода для воспроизведения этой ошибки с этой базой данных.

...