Xai*_*oft 9 c# mysql linq-to-entities entity-framework .net-3.5
我有一个PersonTable用列调用的表:PersonId, RestarauntId, Age
我有一个名为的视图PersonView:
select PersonId,
RestarauntId,
RestarauntName(RestarauntId) as `RestarauntName`,
Age
FROM PersonTable
Run Code Online (Sandbox Code Playgroud)
当我做一些简单的事情:
var persons = context.PersonView.Where(x=>x.PersonId == 1)
.Select(x=>
new {x.PersonId,
x.RestarauntId,
x.RestarauntName,
x.Age });
Run Code Online (Sandbox Code Playgroud)
上面返回1条记录,我希望MySql查询是:
SELECT PersonId, RestarauntId, RestarauntName, Age
FROM PersonView
WHERE PersonId = 1
Run Code Online (Sandbox Code Playgroud)
但相反,它会生成以下内容:
SELECT 1 AS `C1`, T.PersonId, T.RestarauntId, T.RestarauntName, T.Age
FROM
(SELECT PersonId, RestarauntId, RestarauntName, Age
FROM PersonView) AS T
WHERE T.PersonId = 1
Run Code Online (Sandbox Code Playgroud)
所以我传递给where子句并不重要,它始终会在子选择中首先获得所有记录.这只发生在我查询我需要的视图时,但我很好奇为什么它创建上述查询而不是我期望它的那个?这是实体框架问题还是MySql问题?
| 归档时间: |
|
| 查看次数: |
844 次 |
| 最近记录: |