2011-11-01 1 views
0

J'ai la structure suivante pour une tableSubsonic 3.0.0.3 obtenir des éléments distincts sur le nom de la colonne. ActiveRecord

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] 

Et je besoin d'un moyen d'obtenir différentes Ids des villes SubSonic 3.0.0.3. Par exemple, sur sql il ne serait qu'un Select distinct City1 from CityDistancesMin

je tentais de faire ce qui suit

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

Mais je reçois l'erreur suivante:

Can't decide which property to consider the Key - you can create one called 'ID' or mark one with SubSonicPrimaryKey attribute"

J'ai essayé renommage Id à ID mais cela ne semble pas aider.

Répondre

0

La façon dont vous avez réussi à déclencher cette erreur à partir de cette base de données n'est pas évidente. L'erreur est la ligne 301 dans le fichier Extensions.Object.cs, et doit être liée à l'analyse d'un schéma basé sur les attributs de propriété dans le code. Si vous utilisez les modèles ActiveRecord pour traiter votre schéma de base de données, il aurait dû trouver la colonne ID, mais dans tous les cas, cela ne devrait pas déclencher cette erreur. Au moins c'est comme ça que je le comprends.

Si cela ne vous aide pas, pouvez-vous essayer de publier un dossier de repro? Lignes minimales absolues de code pour reproduire cette erreur avec cette base de données.

Questions connexes