EF为下面列出的两个类似语句生成不同的SQL
var test = dbcontext.Persons.GetAll()
.Where(c => c.PersonID == 2)
.Select(c => c.PersonName)
.FirstOrDefault();`
Run Code Online (Sandbox Code Playgroud)
生成的SQL:
SELECT
[Limit1].[PersonName ] AS [PersonName ]
FROM
(SELECT TOP (1)
[Extent1].[PersonName ] AS [PersonName ]
FROM
[dbo].[ApplicationRequest] AS [Extent1]
WHERE
[Extent1].[PersonID ] = @p__linq__0) AS [Limit1]',N'@p__linq__0 uniqueidentifier',@p__linq__0= "2"
Run Code Online (Sandbox Code Playgroud)
我在不同Where条件的多个地方使用上述陈述; 在一个地方合并逻辑我将条件作为参数传递
Public Void PassPredicate(Func<ApplicationRequest, bool> ReqFunc)
{
var test = dbcontext.Persons.GetAll()
.Where(ReqFunc)
.Select(c => c.PersonName)
.FirstOrDefault();
}
Run Code Online (Sandbox Code Playgroud)
我把这个函数称为
PassPredicate(c => c.PersonID == 2);
Run Code Online (Sandbox Code Playgroud)
生成的SQL:
SELECT
[Extent1].[PersonID] AS [PersonID],
[Extent1].[PersonName ] AS [PersonName ],
[Extent1].[DOB] …Run Code Online (Sandbox Code Playgroud) 我还在学习Git的过程中,当我觉得我已经掌握了它的时候......我遇到了一个问题,让我再次感觉自己是一个新手......
我有一个主控和一个分支。由于某些“只有上帝知道”的原因,当我在两个分支上执行“Git status”时,它们显示相同的更改。
当我将这些更改提交给其中一个时......我在另一个中看不到它们......
Master*: Git status
On branch Master
Changes not staged for commit:
modified: Config/A.txt
Untracked files:
logs/B.txt
**Branch-1*: Git status**
On branch Branch-1
Changes not staged for commit:
modified: Config/A.txt
Untracked files:
logs/B.txt
Run Code Online (Sandbox Code Playgroud)
你暂时是上帝,:)