Subsonic 3.0.0.3 получение отдельных элементов в имени столбца. ActiveRecord

#c# #sql #sql-server-2005 #subsonic3 #subsonic-active-record

#c# #sql #sql-server-2005 #subsonic3 #subsonic-active-record

Вопрос:

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

 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:

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

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