1

我有以下工作正常的代码:

ObjectContext octx = new ObjectContext("name=PublisherModelContainer");
        ObjectSet<Author> authorSet = octx.CreateObjectSet<Author>();
        ObjectQuery<Author> q = authorSet.Where("it.FirstName == @FirstName", new ObjectParameter("FirstName", "Isaak"));
        Author a = q.FirstOrDefault();
        if (a == null) 
        { 
            Console.WriteLine("Author not found");
            return;
        }
        Console.WriteLine("{0} {1}", a.FirstName, a.LastName);

在调用“Where”方法时,FirstName 属性通过“ it .FirstName”被引用。这是什么意思?我尝试使用不同的别名,例如“ a .FirstName”,但失败并出现异常消息“a.FirstName”无法在当前范围或上下文中解析。

即使在此处的 Microsoft 示例中(https://msdn.microsoft.com/en-us/library/bb338811%28v=vs.110%29.aspx),使用的 .ProductID 也不是 t.ProductID 之类的东西。

“它”究竟是什么?难道“它”有特殊的含义?

4

1 回答 1

0

It就是您可以参考当前正在使用的集合的方式。与thisC# 类中的相同。但这是基于 EF 生成的查询来实现的。考虑以下 SQL 脚本。

SELECT Col1, Col2, Col3 FROM Table AS It
WHERE It.Col1 = @param1

这是一个链接更详细的解释http://www.w3schools.com/sql/sql_alias.asp

于 2015-03-15T17:02:58.113 回答