Tôi có một cái bàn:
CREATE TABLE [dbo].[Realty](
[Id] [int] IDENTITY(1,1) NOT NULL,
[RankingBonus] [int] NOT NULL,
[Ranking] AS ([Id]+[RankingBonus]) PERSISTED NOT NULL
....
)
Và một quan điểm:
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
Tôi có một mô hình dbml trong C # (LinqToQuery) với khung nhìn FilteredRealty trong đó. Trường [Xếp hạng] được công nhận là int nullable và vì vậy tôi phải sửa loại trong mã được tạo mỗi khi tôi thay đổi bất cứ điều gì trong cơ sở dữ liệu. Điều này rất khó chịu đối với tôi và rất nhiều công việc thủ công.
Không có tổng hợp được sử dụng trong FilteredRealty (liên quan đến câu hỏi liên quan này ).
Tại sao cột Xếp hạng của chế độ xem được coi là không thể thực hiện được nếu Realty.Ranking không thể rỗng?