实体框架数据库首先,视图有多个EntityKey

时间:2015-10-20 13:31:22

标签: c# sql-server entity-framework entity-framework-6 entity-framework-5

我们正在使用实体框架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.

0 个答案:

没有答案