我有一个观点:
SELECT dbo.Theme.ThemeID,
dbo.ThemeObject.XLocation,
dbo.ThemeObject.YLocation,
dbo.ThemeObject.ThemeElementTypeID AS ThemeObject_ThemeElementTypeID,
dbo.ThemeImage.ThemeImageData
FROM dbo.Theme INNER JOIN
dbo.ThemeObject ON dbo.Theme.ThemeID = dbo.ThemeObject.ThemeID LEFT OUTER JOIN
dbo.ThemeImage ON dbo.ThemeObject.ThemeObjectID = dbo.ThemeImage.ThemeObjectID
WHERE (dbo.ThemeObject.IsDeleted = 0 OR dbo.ThemeObject.IsDeleted IS NULL) AND
(dbo.ThemeImage.IsDeleted = 0 OR dbo.ThemeImage.IsDeleted IS NULL) AND
(dbo.Theme.IsDeleted = 0)
我的问题是并非所有ThemeObject都有图像(因此外连接)。 Linq不会识别这一点,并且不会告诉生成器允许列中的空值,因此如果我们不手动设置该列以允许每次都为空,则会导致崩溃。
这是唯一似乎这样做的观点,我无法弄清楚原因。
除了在每次重新创建DAL之后在设计器中手动配置列之外(我有时会删除所有表和视图并重新删除它们,因为微妙的更改会在它们发生时神秘地找不到它们的路径。 ..但让那个人跟上它是我无法控制的) - 有什么我可以调整,以使其正确生成或告诉它改变输出?或者某种覆盖我不知道我可以使用吗?