Ich habe einen Tisch:
CREATE TABLE [dbo].[Realty](
[Id] [int] IDENTITY(1,1) NOT NULL,
[RankingBonus] [int] NOT NULL,
[Ranking] AS ([Id]+[RankingBonus]) PERSISTED NOT NULL
....
)
Und eine Ansicht:
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
Ich habe ein DBML-Modell in C # (LinqToSQL) mit der FilteredRealty- Ansicht. Das [Ranking] -Feld wird als nullbares int erkannt und ich muss den Typ jedes Mal im generierten Code korrigieren, wenn ich etwas in der Datenbank ändere. Das ist sehr frustrierend für mich und viel Handarbeit.
In FilteredRealty werden keine Aggregate verwendet (in Bezug auf diese verwandte Frage ).
Warum wird die Spalte " Rangfolge" der Ansicht als nullwertfähig betrachtet, wenn " Realty.Ranking" nicht nullwertfähig ist?
quelle