我们正在使用实体框架5/6来生成数据库第一个模型,以暴露一些视图 我注意到在生成的模型中,许多列被定义为Keys(EntityKey = true),这使得实体framewrok几乎包含在该视图的每个查询中的语句顺序。
我不知道这里的经验法则,但是通过反复试验和监视SQL分析器中生成的SQL查询,我得出结论,Entity Framwork使用标记为Entity Keys的列为所有查询添加了order by。 / p>
SELECT [ID]
,[Name]
,[Phone]
,[Type]
FROM myView
ORDER BY [ID] ASC, [Name] ASC, [Type] ASC
如果我通过dessigner修改了edmx文件并将EntityKey = false设置为Name和Type列,则查询为:
SELECT [ID]
,[Name]
,[Phone]
,[Type]
FROM myView
ORDER BY [ID] ASC
问题是,实体框架如何首先确定[ID],[名称]和[类型]是实体密钥?
问题是,如此多的顺序可能影响性能,是不是正确?,[Name]列的类型是XML,因此SQL服务器只会引发异常
The XML data type cannot be compared or sorted, except when using the IS NULL operator.