让我用一个例子来澄清这个问题。
如果我想查询从SQL Server View中的不同表收集的复杂数据,看起来像这样(假设视图非常复杂)
SELECT e.ID, e.etc s.etc
FROM TableE AS e
LEFT OUTER JOIN TableS AS s ON e.ID = s.NIP
WHERE ID > 1000
然后在C#上我这样查询:
new SqlCommand("SELECT * FROM VeryComplexView", connection)
上述方法比不这样做更好,而不首先创建视图:
var query = @"SELECT e.ID, e.etc s.etc
FROM TableE AS e
LEFT OUTER JOIN TableS AS s ON e.ID = s.NIP
WHERE ID > 1000";
new SqlCommand(query, connection)
视图实际上比上面的例子更复杂。
答案 0 :(得分:1)
为了获得更好的性能和更安全的方法,请创建存储过程,并在其中包含yuor查询。然后从C#代码调用您的过程。