J'ai une table:
CREATE TABLE [dbo].[Realty](
[Id] [int] IDENTITY(1,1) NOT NULL,
[RankingBonus] [int] NOT NULL,
[Ranking] AS ([Id]+[RankingBonus]) PERSISTED NOT NULL
....
)
Et une vue:
CREATE View [dbo].[FilteredRealty] AS
SELECT
realty.Id as realtyId,
...
COALESCE(realty.Wgs84X, ruian_cobce.Wgs84X, ruian_obec.Wgs84X) as Wgs84X,
COALESCE(realty.Wgs84Y, ruian_cobce.Wgs84Y, ruian_obec.Wgs84Y) as Wgs84Y,
realty.Ranking,
...
FROM realty
JOIN Category ON realty.CategoryId = Category.Id
LEFT JOIN ruian_cobce ON realty.cobceId = ruian_cobce.cobce_kod
LEFT JOIN ruian_obec ON realty.obecId = ruian_obec.obec_kod
LEFT JOIN okres ON realty.okresId = okres.okres_kod
LEFT JOIN ExternFile ON realty.Id = ExternFile.ForeignId AND ExternFile.IsMain = 1
AND ExternFile.ForeignTable = 5
INNER JOIN Person ON realty.OwnerId = Person.Id
WHERE Person.ConfirmStatus = 1
J'ai un modèle dbml en C # (LinqToSQL) avec la vue FilteredRealty dedans. Le champ [Ranking] est reconnu comme un entier nullable et je dois donc corriger le type dans le code généré à chaque fois que je change quoi que ce soit dans la base de données. C'est très frustrant pour moi et beaucoup de travail manuel.
Aucun agrégat n'est utilisé dans FilteredRealty (concernant cette question connexe ).
Pourquoi la colonne Classement de la vue est-elle considérée comme annulable si Realty.Ranking est non annulable?